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

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

  1. Понять и определить проблему
  2. Проанализируйте и подготовьте данные
  3. Применить алгоритмы
  4. Уменьшить количество ошибок
  5. Предсказать результат

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

Постановка задачи

Этот набор данных состоит из физических параметров трех видов цветка — Versicolor, Setosa и Virginica. Набор данных содержит следующие числовые параметры: ширина чашелистика, длина чашелистика, ширина лепестка и длина лепестка. В этих данных мы будем прогнозировать классы цветов

ЦЕЛЬ

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

Давайте погрузимся в наш проект ML. Мы будем использовать python и sklearn, matplotlibrary.

давайте посмотрим код

Набор данных Iris уже доступен в библиотеке SciKit Learn, и мы можем импортировать его напрямую с помощью следующего кода:

Параметры цветов ириса могут быть выражены в виде фрейма данных, показанного на изображении ниже, а столбец «класс» сообщает нам, к какой категории он принадлежит.

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

Понимание данных

Это относительно очень небольшой набор данных из 150 образцов. Поскольку кадр данных имеет четыре функции (длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка) со 150 образцами, принадлежащими любому из трех целевых классов, наша матрица будет:

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

Поскольку это предопределенный набор данных, каждый класс имеет одинаковое количество образцов. То есть 50 за класс.

Визуальный анализ данных

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

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

Применение алгоритма

1. Разделение данных для обучения и тестирования

Как только мы поняли, о чем набор данных, мы можем начать обучение модели на основе алгоритмов. Здесь мы будем реализовывать некоторые из часто используемых алгоритмов машинного обучения. Давайте начнем с обучения нашей модели на некоторых образцах. Мы будем использовать встроенную библиотеку под названием «train_test_split», которая делит наш набор данных в соотношении 70:30. Это можно сделать с помощью следующего кода:

2. Обучение модели

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

  1. K — Ближайший сосед (KNN)
  2. Метод опорных векторов (SVM)
  3. Рандомфорест
  4. Логистическая регрессия

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

Мы можем начать с первого алгоритма KNN с числом соседей 5. Мы можем построить нашу модель, как показано ниже:

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

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

Логистическая регрессия работает по двум схемам: во-первых, если это проблема бинарной классификации, она работает как один против остальных, а если это задача многоклассовой классификации, она работает как один против многих.

3. Выберите модель и настройте параметры

Из приведенных выше моделей мы увидели, что randomforest дает нам наилучшую точность 97,59%. Давайте настроим параметр, чтобы получить 100% точность. Давайте установим количество деревьев равным 1000, чтобы проверить, хорошо ли работает наша модель.

Вывод

В ML нет конкретной модели или алгоритма, который может дать 100% результат для каждого отдельного набора данных. Нам нужно понять данные, прежде чем применять какой-либо алгоритм и строить нашу модель в зависимости от желаемого результата. Этот набор данных дает нам 100% точность, что практически невозможно. Из приведенных выше моделей RandomForest обеспечивает оптимальную точность по сравнению с другими алгоритмами, поскольку он лучше всего работает с непрерывными данными, а также применяет нелинейную связь с функциями. Используя этот алгоритм, вы уменьшаете вероятность переобучения и дисперсии данных, что приводит к большей точности.