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

Scikit-learn — это самая популярная библиотека Python для выполнения алгоритмов классификации, регрессии и кластеризации. графики и визуализация) и SciPy (для математики).

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

Сегодня мы рассмотрим:

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

Повышение квалификации по машинному обучению

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

  • Контролируемое обучение
  • Неконтролируемое обучение
  • Обучение с подкреплением

Контролируемое обучение

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

Неконтролируемое обучение

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

Обучение с подкреплением

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

В этом посте мы расскажем о двух основных методах обучения с учителем:

  • Классификация. При классификации выходные данные представляют собой дискретные данные. Проще говоря, это означает, что мы собираемся классифицировать данные на основе определенных признаков. Например, различать яблоки и апельсины по их форме, цвету, текстуре и т. д. В этом примере форма, цвет и текстура известны как features, а результат — «яблоко» или «апельсин», которые известны как Classes. Поскольку выходные данные известны как классы, метод называется Classification.
  • Регрессия. В режиме регрессии выходные данные представляют собой непрерывные данные. В этом методе мы прогнозируем тенденции обучающих данных на основе признаков. Результат не принадлежит к определенной категории или классу, но он дает числовой вывод, который является действительным числом. Например, прогнозирование цен на жилье основано на определенных характеристиках, таких как размер дома, расположение дома и этажность. , и т. д.

Как реализовать классификацию и регрессию

Python предоставляет множество инструментов для реализации классификации и регрессии. Самая популярная библиотека для обработки данных Python с открытым исходным кодом — scikit-learn. Давайте узнаем, как использовать Scikit-learn для выполнения классификации и регрессии простыми словами.

Основные этапы контролируемого машинного обучения включают в себя:

  • Загрузите необходимые библиотеки
  • Загрузите набор данных
  • Разделите набор данных на обучающий и тестовый наборы
  • Обучите модель
  • Оценить модель

Загрузка библиотек

#Numpy deals with large arrays and linear algebra
import numpy as np
# Library for data manipulation and analysis
import pandas as pd 

# Metrics for Evaluation of model Accuracy and F1-score
from sklearn.metrics  import f1_score,accuracy_score

#Importing the Decision Tree from scikit-learn library
from sklearn.tree import DecisionTreeClassifier

# For splitting of data into train and test set
from sklearn.model_selection import train_test_split

Загрузка набора данных

train=pd.read_csv("/input/hcirs-ctf/train.csv")
# read_csv function of pandas reads the data in CSV format
# from path given and stores in the variable named train
# the data type of train is DataFrame

Разделение на набор Train & Test

#first we split our data into input and output
# y is the output and is stored in "Class" column of dataframe
# X contains the other columns and are features or input
y = train.Class
train.drop(['Class'], axis=1, inplace=True)
X = train

# Now we split the dataset in train and test part
# here the train set is 75% and test set is 25%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=2)

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

# Training the model is as simple as this
# Use the function imported above and apply fit() on it
DT= DecisionTreeClassifier()
DT.fit(X_train,y_train)

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

# We use the predict() on the model to predict the output
pred=DT.predict(X_test)

# for classification we use accuracy and F1 score
print(accuracy_score(y_test,pred))
print(f1_score(y_test,pred))

# for regression we use R2 score and MAE(mean absolute error)
# all other steps will be same as classification as shown above
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import r2_score
print(mean_absolute_error(y_test,pred))
print(mean_absolute_error(y_test,pred))

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

Примечание. Импортируйте эти методы для использования вместо DecisionTreeClassifier().

10 популярных методов классификации

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

from sklearn.linear_model import LogisticRegression

Машина опорных векторов

from sklearn.svm import SVC

Наивный байесовский (гауссовский, полиномиальный)

from sklearn.naive_bayes import GaussianNB
from sklearn.naive_bayes import MultinomialNB

Стохастический классификатор градиентного спуска

from sklearn.linear_model import SGDClassifier

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

from sklearn.neighbors import KNeighborsClassifier

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

from sklearn.tree import DecisionTreeClassifier

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

from sklearn.ensemble import RandomForestClassifier

Классификатор повышения градиента

from sklearn.ensemble import GradientBoostingClassifier

ЛГБМ-классификатор

from lightgbm import LGBMClassifier

Классификатор XGBoost

from xgboost.sklearn import XGBClassifier

10 популярных методов регрессии

Линейная регрессия

from sklearn.linear_model import LinearRegression

LGBM-регрессор

from lightgbm import LGBMRegressor

XGBoost регрессор

from xgboost.sklearn import XGBRegressor

Регрессор CatBoost

from catboost import CatBoostRegressor

Стохастическая регрессия с градиентным спуском

from sklearn.linear_model import SGDRegressor

Регрессия Кернел-Ридж

from sklearn.kernel_ridge import KernelRidge

Эластичная чистая регрессия

from sklearn.linear_model import ElasticNet

Регрессия байесовского хребта

from sklearn.linear_model import BayesianRidge

Градиент, усиливающий регрессию

from sklearn.ensemble import GradientBoostingRegressor

Машина опорных векторов

from sklearn.svm import SVR

Что изучать дальше

Я надеюсь, что этот краткий учебник и шпаргалка помогут вам в вашем путешествии по scikit-learn. Эти методы сделают ваше путешествие по исследованию данных более плавным и простым, поскольку вы продолжите изучать эти мощные инструменты. Нам еще многое предстоит узнать о Scikit-learn и других библиотеках Python ML.

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

  • Машина опорных векторов
  • Случайный лес
  • Методы перекрестной проверки
  • grid_search
  • fit_transform
  • n_clusters
  • n_neighbors
  • sklearn.grid

Чтобы ускорить ваше путешествие по Scikit-Learn, Educative создал курс Практическое машинное обучение с помощью Scikit-learn. Благодаря подробным объяснениям всех основ Scikit-learn и популярных алгоритмов машинного обучения этот курс предлагает все, что вам нужно, в одном месте. К концу вы будете знать, как и когда использовать каждый алгоритм машинного обучения, и будете обладать навыками Scikit, чтобы выделиться любому интервьюеру.

Удачного обучения!

Продолжить чтение о машинном обучении и Scikit-learn на сайте Educative

Начать обсуждение

Какой ваш любимый пример использования машинного обучения в реальном мире? Была ли эта статья полезна? Дайте нам знать в комментариях ниже!