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

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

Давайте начнем с общих черт этих двух техник.

Машинное обучение с учителем

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

При обучении с учителем используется алгоритм для изучения функции отображения входной переменной (x) в выходную переменную (y); то есть y = f (X).

Цель такой задачи - максимально точно аппроксимировать функцию отображения (f), чтобы при появлении новых входных данных (x) можно было предсказать выходную переменную (y) для набора данных.

Вот диаграмма, на которой показаны различные группы машинного обучения:

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

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

Регресс в машинном обучении

В машинном обучении алгоритмы регрессии пытаются оценить функцию отображения (f) из входных переменных (x) в числовые или непрерывные выходные переменные (y).

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

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

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

Некоторые алгоритмы, такие как логистическая регрессия, имеют в своем названии название «регрессия», но они не являются алгоритмами регрессии.

Вот пример задачи линейной регрессии в Python:

import numpy as np
import pandas as pd
# importing the model
from sklearn.linear_model import LinearRegression
from sklearn.cross_validation import train_test_split
# importing the module for calculating the performance metrics of the model
from sklearn import metrics
data_path = “http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv" # loading the advertising dataset
data = pd.read_csv(data_path, index_col=0)
array_items = [‘TV’, ‘radio’, ‘newspaper’] #creating an array list of the items
X = data[array_items] #choosing a subset of the dataset
y = data.sales #sales
# dividing X and y into training and testing units
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
linearreg = LinearRegression() #applying the linear regression model
linearreg.fit(X_train, y_train) #fitting the model to the training data
y_predict = linearreg.predict(X_test) #making predictions based on the testing unit
print(np.sqrt(metrics.mean_squared_error(y_test, y_predict))) #calculating the RMSE number
#output gives the RMSE number as 1.4046514230328955

Классификация в машинном обучении

С другой стороны, алгоритмы классификации пытаются оценить функцию отображения (f) от входных переменных (x) до дискретных или категориальных выходных переменных (y).

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

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

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

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

Вот пример задачи классификации, которая различает апельсин и яблоко:

from sklearn import tree
# Gathering training data
# features = [[155, “rough”], [180, “rough”], [135, “smooth”], [110, “smooth”]] # Input to classifier
features = [[155, 0], [180, 0], [135, 1], [110, 1]] # scikit-learn requires real-valued features
# labels = [“orange”, “orange”, “apple”, “apple”] # output values
labels = [1, 1, 0, 0]
# Training classifier
classifier = tree.DecisionTreeClassifier() # using decision tree classifier
classifier = classifier.fit(features, labels) # Find patterns in data
# Making predictions
print (classifier.predict([[120, 1]]))
# Output is 0 for apple

Подведение итогов

Выбор правильного алгоритма для вашей задачи машинного обучения имеет решающее значение для получения необходимых вам результатов.

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

Есть ли у вас какие-либо комментарии или вопросы?

Пожалуйста, разместите их ниже.