Конвейер классификации

На этой странице представлен конвейер для классификации. То есть продолжение процесса от исследования данных до классификации с помощью моделей оценки.

конвейер классификации

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

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

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

Конвейер для классификации Конвейер для классификации

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

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

Сигмовидная функция генерирует вывод вероятности. И, сравнивая вероятность с предопределенным порогом, объекту присваивается соответствующая метка.

из склерн.linear_model импорт Логистическая регрессия dtc = Дерево решенийКлассификатор()
код неисправности.поместиться(X_train, y_train)
y_pred = код неисправности.предсказывать(X_тест)

Древо решений

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

из склерн.дерево импорт Регистр DecisionTreeClassifier = Логистическая регрессия()
регистр.поместиться(X_train, y_train)
y_pred = регистр.предсказывать(X_тест)

Случайный лес

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

из склерн.вместе импорт RandomForestClassifier rfc = Случайный ЛесКлассификатор()
rfc.поместиться(X_train, y_train)
y_pred = rfc.предсказывать(X_тест)

Метод опорных векторов (SVM)

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

из склерн.СВМ импорт СВК
СВК = СВК()
СВК.поместиться(X_train, y_train)
y_pred = СВК.предсказывать(X_тест)

k ближайший сосед (kNN)

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

из склерн.соседи импорт KNeighboursClassifier knn = KNeighboursClassifier()
кнн.поместиться(X_train, y_train)
y_pred = кнн.предсказывать(X_тест)

наивный байес

Наивный Байес основан на теореме Байеса — подходе к вычислению условной вероятности, основанном на априорных знаниях и наивном предположении, что каждый признак не зависит друг от друга. Самым большим преимуществом наивного байесовского алгоритма является то, что, хотя большинство алгоритмов машинного обучения полагаются на большой объем обучающих данных, они работают относительно хорошо, даже когда размер обучающих данных невелик. Гауссовский наивный байесовский классификатор — это тип наивного байесовского классификатора, который следует нормальному распределению.

из склерн.naive_bayes импорт GaussianNB gnb = KNeighboursClassifier()
гнб.поместиться(X_train, y_train)
y_pred = гнб.предсказывать(X_тест)

Сделать конвейер для классификации

Загрузка набора данных и предварительный просмотр данных

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

Используйте df.info() для получения сводного представления набора данных, включая тип данных, отсутствующие данные и количество записей.

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

Гистограмма, гистограмма с кластерами и блочная диаграмма являются подходящими методами EDA для классификации алгоритмов машинного обучения.

Одномерный анализ

Конвейер для классификации Конвейер для классификации
 

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

Категориальные характеристики по сравнению с целевыми — гистограмма с кластерами

Конвейер для классификации Конвейер для классификации

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

Числовые характеристики по сравнению с целью - блок-диаграмма

Конвейер для классификации Конвейер для классификации

Блочная диаграмма показывает, как значения числовых характеристик варьируются в зависимости от целевых групп. Например, мы можем сказать, что 'oldpeak' имеет явное различие, когда цель равна 0, а цель равна 1, предполагая, что это важный предиктор. Однако «trestbps» и «chol» кажутся менее примечательными, так как распределение коробчатой диаграммы одинаково между целевыми группами.

Разделение набора данных

Алгоритм классификации относится к категории обучения с учителем, поэтому набор данных следует разделить на подмножество для обучения и подмножество для тестирования (иногда также набор для проверки). Модель обучается на обучающем наборе, а затем проверяется с помощью тестового набора.

из склерн.модель_выбор импорт train_test_split
из склерн импорт предварительная обработка

Икс = дф.уронить(['цель'], ось=1)
там = дф["цель"]

X_train, X_тест, y_train, y_test = train_test_split(Икс, там, test_size=0.33, случайное_состояние=42)

Конвейер классификации

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

Конвейер для классификации Конвейер для классификации

Оценка модели

Вот абстрактное объяснение часто используемых методов оценки для моделей классификации - точность, ROC и AUC и матрица путаницы. Конвейер для классификации включает в себя как обработку данных, модели, так и их оценку.

конвейер классификации

Точность — это простейший показатель производительности модели. Он измеряет процент правильных прогнозов.

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

конвейер классификации

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

 

Истинный отрицательный

 

Ложный положительный результат

 

Ложноотрицательный

 

TruePositive

 
Затем мы можем использовать seaborn, чтобы визуализировать матрицу путаницы на тепловой карте.
Конвейер для классификации Конвейер для классификации

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

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

Это знаменует собой конец конвейера классификации!

Делиться
ru_RURU