Памятка по Scikit-learn: методы классификации и регрессии

Памятка по Scikit-learn Изучение

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

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

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

Содержание
  1. Напоминание о машинном обучении
  2. Контролируемое обучение
  3. Неконтролируемое обучение
  4. Обучение с подкреплением
  5. Как реализовать классификацию и регрессию
  6. Загрузка библиотек
  7. Загрузка набора данных
  8. Разделение на набор для обучения и тестирования
  9. Обучение модели
  10. Оценка модели
  11. 10 популярных методов классификации
  12. Логистическая регрессия
  13. Машина опорных векторов
  14. Наивный байесовский (гауссовский, полиномиальный)
  15. Классификатор стохастического градиентного спуска
  16. KNN (k-ближайший сосед)
  17. Древо решений
  18. Случайный Forest
  19. Классификатор повышения градиента
  20. LGBM Classifier
  21. Классификатор XGBoost
  22. 10 популярных методов регрессии
  23. Линейная регрессия
  24. Регрессор ЛГБМ
  25. Регрессор XGBoost
  26. CatBoost Regressor
  27. Стохастическая регрессия градиентного спуска
  28. Регрессия кернел-риджа
  29. Эластичная чистая регрессия
  30. Bayesian Ridge Regression
  31. Регрессия с усилением градиента
  32. Машина опорных векторов
  33. Что учить дальше

Напоминание о машинном обучении

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

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

Напоминание о машинном обучении

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

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

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

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

Читайте также:  Как установить NumPy в PyCharm?

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

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

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

  • Классификация: в Классификации выходными данными являются дискретные данные. Проще говоря, это означает, что мы собираемся классифицировать данные на основе определенных функций. Например, различие между яблоками и апельсинами на основе их формы, цвета, текстуры и т. Д. В этом примере форма, цвет и текстура известны как 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

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

#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))

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

Примечание. Импортируйте эти методы, чтобы использовать их вместо 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

Случайный Forest

from sklearn.ensemble import RandomForestClassifier

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

from sklearn.ensemble import GradientBoostingClassifier

LGBM Classifier

from lightgbm import LGBMClassifier

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

from xgboost.sklearn import XGBClassifier

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

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

from sklearn.linear_model import LinearRegression

Регрессор ЛГБМ

from lightgbm import LGBMRegressor

Регрессор XGBoost

from xgboost.sklearn import XGBRegressor

CatBoost Regressor

from catboost import CatBoostRegressor

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

from sklearn.linear_model import SGDRegressor

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

from sklearn.kernel_ridge import KernelRidge

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

from sklearn.linear_model import ElasticNet

Bayesian Ridge Regression

from sklearn.linear_model import BayesianRidge

Регрессия с усилением градиента

from sklearn.ensemble import GradientBoostingRegressor

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

from sklearn.svm import SVR

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

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

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

  • Машина опорных векторов
  • Случайный Forest
  • Методы перекрестной проверки
  • grid_search
  • fit_transform
  • n_clusters
  • n_neighbors
  • sklearn.grid
Оцените статью
bestprogrammer.ru
Добавить комментарий