Научный подход к определению качества красного вина с использованием глубокого обучения!

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

Красное вино полезно для нашего организма, если оно находится в идеальном количестве. Употребление более 1-2 стаканов красного вина в день вредно для нашего организма, так как увеличивает потребление алкоголя.
Также рекомендуется 1-2 дня в неделю без алкоголя!

Давайте воспользуемся нашими знаниями машинного обучения, чтобы определить качество красного вина на основе нескольких факторов, таких как: -
1. Фиксированный уровень кислотности
2. Летучая кислота
3. Лимонная кислота
4. Остаточный сахар
5. Хлориды
6. Свободный диоксид серы
7. Плотность
8. Уровень pH
9. Сульфаты
10. Спирт content
По этой ссылке можно получить доступ к данным, необходимым для нашей задачи.

Итак, теперь, когда у нас есть данные, нам нужна платформа, на которой мы можем выполнять визуализацию данных, предварительную обработку и обучение классификатора нейронной сети. Для этого мы можем использовать Платформу AITS Cainvas Platform. Это дает нам доступ к высокоэффективным графическим процессорам, и мы можем легко подготовить наши ноутбуки jupyter.

Давайте начнем с импорта данных в виде файла CSV с помощью библиотеки pandas. Pandas - это библиотека, которая предоставляет простые в использовании структуры данных для хранения информации, выполнения задач визуализации и предварительной обработки данных с помощью другие библиотеки.
Когда мы сначала смотрим на данные, мы сначала проверяем значения NULL. Мы обнаружили, что в данных нет значения NULL, поэтому нам не нужно иметь с ними дело.

Следующим шагом будет определение уровня качества распределения. Мы обнаружили, что уровни качества в данных равны 3, 4, 5, 6, 7, 8. Используя библиотеку seaborn, мы подсчитываем появление каждого уровня качества. Мы наблюдаем, что данные неравномерно распределены по уровням качества 5 и 6, а другие уровни представлены недостаточно.

Если мы обучим нашу модель этим данным, модель будет смещена в сторону 5-го и 6-го уровней качества, поскольку эти классы широко представлены. Чтобы решить проблему, мы предварительно обрабатываем данные и распределяем уровни качества на два класса следующим образом:
1. Класс 0: уровни качества {3, 4, 5}
2. Класс 1 : Уровни качества {6, 7, 8}

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

Позвольте нам понять влияние различных других функций на качество вина с помощью визуализации данных. Построив линейный график между концентрацией алкоголя, мы пришли к выводу, что качество вина повышается, когда концентрация алкоголя составляет от 10,5% до 12%.

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

Затем мы понимаем влияние уровня кислотности на качество вина с помощью гистограммы.

После того, как мы закончили визуализацию наших данных, следующим шагом будет разделение данных на обучающую и тестовую части с помощью метода train_test_split () из библиотеки scikit-learn. Мы делаем разделение на обучение и тестирование в соотношении 3: 1. Еще один важный шаг на этом этапе - предварительная обработка данных. Добиваемся этого с помощью MinMaxScaler (). Эта функция масштабирования преобразует все функции таким образом, чтобы они лежали между 0 и 1. Таким образом, мы гарантируем, что все данные равномерно распределены по общему масштабу.

Хорошей практикой при подготовке моделей глубокого обучения является использование функции обратного вызова Keras. Используя EarlyStopping () и отслеживая потерю проверки, наша модель прекращает обучение, если потеря проверки не уменьшается в течение 5 эпох. Таким образом, мы гарантируем минимальную величину потерь, а также в некоторой степени предотвращаем переоснащение.

Следующим шагом будет определение архитектуры нашей последовательной модели. Поскольку у нас есть 11 функций, мы устанавливаем входные размеры равными 11 и настраиваем несколько плотных слоев, затем слоев Dropout и снова несколько плотных слоев. Основная функция добавления слоев Dropout - предотвращение переобучения. Он случайным образом отбрасывает или игнорирует выходы нескольких слоев и уменьшает их до 0. Это побуждает нейронную сеть изучать разреженную сеть. Наконец, мы распечатываем сводку нашей модели и видим, что в нашей модели около 240 тысяч обучаемых параметров.

Компилируя нашу модель с помощью оптимизатора Adam со скоростью обучения 0,001 и категориальной кроссэнтропией в качестве функции потерь, мы начинаем обучение с установки размера пакета 25 и инициализируем обучение для 100 эпох.
После наше обучение заканчивается, мы видим, что достигли точности проверки 80% и значения потерь всего 0,5.

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

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

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

Удачи в карьере в области машинного обучения.
Ура!

Ссылка на блокнот: Здесь

Предоставлено: Kkharbanda