Целью данного исследования является прогнозирование качества вина на основе его физико-химических составляющих. В этом проекте набор данных о качестве красного вина был взят из Kaggle, но в основном он был загружен в репозиторий машинного обучения UCI https://archive.ics.uci.edu/ml/datasets/Wine+Quality. Этот набор данных содержит 1599 различных типов красного вина с 11 физико-химическими характеристиками, такими как содержание алкоголя, хлоридов, плотность, общий диоксид серы, свободный диоксид серы, остаточный сахар и pH. и 10. К этой задаче подошли с использованием алгоритмов классификации, таких алгоритмов, как логистическая регрессия, K-NN и Random Forest.

Индустрия красного вина всегда переживала экспоненциальный рост. В настоящее время компании используют сертификаты качества продукции для продвижения своей продукции. Однако это не только трудоемкий процесс, но и требующий оценки со стороны экспертов, что делает этот процесс очень дорогим. Цена красного вина всегда относится к тому, насколько оно хорошее, но зависит от абстрактной концепции дегустаторов, и их мнение подвержено большой изменчивости. Винные компании и индустрия исследуют новые технологии производства и продажи вина, чтобы поддержать этот рост.

Крупные компании в разных областях переходят на аналитику данных, машинное обучение и искусственный интеллект не только для снижения производственных затрат, но и для улучшения услуг и продуктов.

Теперь, когда мы в целом поговорили о проекте, давайте углубимся и рассмотрим каждый шаг в этом проекте.

Итак, приступим!

Исследовательский анализ данных

Первое, что я сделал после загрузки данных, это проверил, есть ли у нас нулевые значения или нет:

Оказывается, пропущенных значений нет.

Проблема теперь понятна, теперь мы знаем, что «качество» зависит от других переменных (сульфаты, спирт…)

Построим распределение зависимой переменной:

Теперь, когда у нас есть представление о нашей зависимой переменной, не хватает чего-то важного.

Мне нужно было выяснить, какие из этих физико-химических данных оказали большое влияние на качество. Корреляция была лучшим фактором, который у нас был.

Чтобы получить представление о том, что происходит, необходимо было построить тепловую карту:

«Алкоголь» — это самая характеристика, имеющая положительную корреляцию с «качеством», за ней следуют «сульфаты», если мы все еще говорим о положительной корреляции.

Однако «летучая кислотность» имеет вторую по величине корреляцию с «качеством», но коррелирует отрицательно. Таким образом, отношение между ними обратное.

Более того, чтобы подойти к этой проблеме категорично, нам пришлось разделить дискретные значения «качества» на 2 разные категории «хорошее» и «плохое».

Поэтому я ввел новую переменную под названием «рейтинг», основанную на «качестве»:

Но чтобы применить алгоритмы классификации, нам пришлось сопоставить «хорошие» и «плохие» экземпляры с бинарной формой с 1 и 0 соответственно:

После этого я решил сделать разные диаграммы для наиболее важных функций с «рейтингом»:

Все диаграммы имеют положительную связь между функциями и новой зависимой переменной, за исключением последнего графика, который представляет собой «летучую кислотность», потому что, как мы упоминали ранее, это важная переменная, но она имеет отрицательную корреляцию.

Моделирование

Логистическая регрессия:

Для логистической регрессии после того, как я превратил качество в хорошее и плохое (задача классификации), я удалил качество столбца и сохранил его модифицированную версию (рейтинг).

А затем я разделил набор данных между поездом и тестом и получил точность 73% на тестовых данных.

Я использовал масштабирование данных, но ничего особо не изменилось, вместо 73,3% я получил 73,5% с масштабированием данных.

Случайный лес с использованием пошагового выбора:

Решение этой задачи с помощью классификационных алгоритмов определенно дало нам лучшие результаты, чем регрессионные, а РФ дало лучшие результаты, чем логистическая регрессия.

Чтобы получить правильную точность, а не среднее значение, мы подгоняем модель к данным поезда, делаем прогноз по X_test и сравниваем прогнозируемый результат с y_test.

Мы получаем следующую точность с 5 признаками:

K-ближайшие соседи:

Со стандартизацией K-NN дал нам точность 72,5%.

Без стандартизации K-NN дал явно более низкую точность 62,7%.

Заключение

Для каждой классификации, используемой в нашей задаче, я проанализировал результаты и наблюдал, как они меняются в зависимости от различных переменных.

Исследование включает анализ классификаторов набора данных о красных винах. Результаты описываются в процентах от правильно классифицированной точности, отзыва, точности и F-показателя после применения логистической регрессии, случайного леса и K-NN.

Random Forest с выбором признаков показал более высокую точность 80%. Заметно выше, чем у логистической регрессии, которая показала только 73% точности, и у K-NN с масштабированием признаков, которое показало 72,5%.

Масштабирование функций не повлияет на логистическую регрессию, если мы используем общую логистическую регрессию.

Это повлияет на него только в том случае, если мы используем какую-то регуляризацию. (ЛАССО, КОНЬ).

С другой стороны, K-NN действительно чувствителен к масштабированию функций, потому что это алгоритм, основанный на расстоянии. Читать здесь для более подробного объяснения.

Подводя итог, я думаю, что древовидные алгоритмы будут работать лучше в таких сценариях, набор данных действительно мал.

«Алкоголь» оказывает наибольшее влияние на «качество», за ним следует «летучая кислотность» при смешивании с «общим диоксидом серы» и «спиртом».

Все остальные составляющие важны, но эти 2 определяют строгость оценки качества, поэтому я думаю, что винодельческие компании должны серьезно относиться к этим 2 характеристикам, а также следует принимать во внимание другие характеристики, поскольку они также важны, однако больше данных и, возможно, алгоритм нейронной сети необходим для получения определенной и очень точной модели.

Но все 5 функций помогли правильно сформировать нашу модель с точностью 80%, после чего мы остановились, потому что другие функции были менее важны для точности, и это стоило бы модели большего времени и ресурсов для обучения.

Спасибо за прочтение !