IIS_2023_1/orlov_artem_lab_3/readme.md

53 lines
4.3 KiB
Markdown
Raw Normal View History

Общее задание:
Решите с помощью библиотечной реализации дерева решений задачу из лабораторной работы «Веб-сервис «Дерево решений» по предмету
«Методы искусственного интеллекта» на 99% ваших данных. Проверьте работу модели на оставшемся проценте, сделайте вывод.
Задание по вариантам:
Тема: Анализ данных Top 240 Recommended Restaurants in L.A. 2023
Ссылка на датасет:
https://www.kaggle.com/datasets/lorentzyeung/top-240-recommended-restaurants-in-la-2023?resource=download&select=top+240+restaurants+recommanded+in+los+angeles+2.csv
Задача для древа решений: Классификация ресторанов на хорошие и плохие
Признаки: Address, StarRating, Style, NumberOfReviews
Целевая переменная: StarRating
Запуск приложения: запуск файла app.py
Использованные технологии:
Flask: Микрофреймворк для создания веб-приложений на языке Python. В данном коде Flask используется для обработки HTTP-запросов и отображения веб-страниц.
Pandas: Библиотека для анализа данных, используется для работы с табличными данными. В коде Pandas используется для создания DataFrame и обработки данных.
Scikit-learn: Библиотека для машинного обучения. В данном коде Scikit-learn используется для обучения модели классификации (RandomForestClassifier) на основе данных о ресторанах.
HTML и Jinja2: HTML используется для создания структуры веб-страницы, а Jinja2 — для вставки динамических данных в HTML-шаблоны. В коде HTML и Jinja2 используются для отображения формы ввода данных и вывода результата предсказания.
Numpy: Библиотека для работы с массивами данных. В коде Numpy используется для работы с массивами при вычислении важности признаков.
RandomForestClassifier: Алгоритм машинного обучения, использующий ансамбль деревьев решений для задач классификации. В данном коде этот классификатор обучается на данных о ресторанах и используется для предсказания, является ли ресторан хорошим или плохим на основе введенных пользователем данных.
Описание работы программы:
Данные о ресторанах загружаются в Pandas DataFrame.
Создаются бинарные признаки для стилей ресторанов и закодированы адреса.
Модель RandomForestClassifier обучается на этих данных.
Flask запускает веб-сервер.
Пользователь может ввести данные о ресторане через веб-страницу.
Введенные данные подаются на вход модели, и результат (хороший или плохой ресторан) отображается на веб-странице, а также выводится точность модели.
Пример входных данных:
Данные из файлов "top_240_restaurants_recommended_in_los_angeles_2.csv"
Address: 8701 Beverly Blvd West Hollywood, CA 90048
Style: American (New), Cocktail Bars
NumberOfReviews: 2672
Пример выходных данных:
результат классификации, точность модели, важность признаков.
Ресторан классифицирован как: Хороший