Машинное обучение — это быстрорастущая технология в современном мире. Машинное обучение уже интегрировано в нашу повседневную жизнь с такими инструментами, как распознавание лиц, помощники по дому, сканеры резюме и беспилотные автомобили.
Scikit-learn — самая популярная библиотека Python для выполнения алгоритмов классификации, регрессии и кластеризации. Это важная часть других библиотек науки о данных Python, таких как matplotlib, NumPy(для графиков и визуализации) и SciPy(для математики).
В нашей последней статье о Scikit-learn мы познакомили с основами этой библиотеки наряду с наиболее распространенными операциями. Сегодня мы расширяем наши знания Scikit-learn на один шаг дальше и научим вас проводить классификацию и регрессию, а затем 10 самых популярных методов для каждого из них.
- Напоминание о машинном обучении
- Контролируемое обучение
- Неконтролируемое обучение
- Обучение с подкреплением
- Как реализовать классификацию и регрессию
- Загрузка библиотек
- Загрузка набора данных
- Разделение на набор для обучения и тестирования
- Обучение модели
- Оценка модели
- 10 популярных методов классификации
- Логистическая регрессия
- Машина опорных векторов
- Наивный байесовский (гауссовский, полиномиальный)
- Классификатор стохастического градиентного спуска
- KNN (k-ближайший сосед)
- Древо решений
- Случайный Forest
- Классификатор повышения градиента
- LGBM Classifier
- Классификатор XGBoost
- 10 популярных методов регрессии
- Линейная регрессия
- Регрессор ЛГБМ
- Регрессор XGBoost
- CatBoost Regressor
- Стохастическая регрессия градиентного спуска
- Регрессия кернел-риджа
- Эластичная чистая регрессия
- Bayesian Ridge Regression
- Регрессия с усилением градиента
- Машина опорных векторов
- Что учить дальше
Напоминание о машинном обучении
Машинное обучение учит компьютер выполнять и изучать задачи без явного программирования. Это означает, что система обладает определенной степенью способности принимать решения. Машинное обучение можно разделить на три основные категории:
- Контролируемое обучение
- Неконтролируемое обучение
- Обучение с подкреплением
Контролируемое обучение
В этой модели машинного обучения наша система обучается под наблюдением учителя. Модель имеет известные входные и выходные данные, используемые для обучения. Учитель знает результат в процессе обучения и тренирует модель, чтобы уменьшить ошибку в прогнозировании. Двумя основными типами контролируемых методов обучения являются классификация и регрессия.
Неконтролируемое обучение
Неконтролируемое обучение относится к моделям, в которых нет руководителя процесса обучения. Модель использует только входные данные для обучения. Выход узнается только из входов. Основным типом обучения без учителя является кластеризация, в которой мы группируем похожие вещи вместе, чтобы найти закономерности в немаркированных наборах данных.
Обучение с подкреплением
Обучение с подкреплением относится к моделям, которые учатся принимать решения на основе вознаграждений или наказаний и пытаются максимизировать вознаграждение с помощью правильных ответов. Оно обычно используется для игровых алгоритмов или робототехники, где робот учится, выполняя задачи и получая обратную связь.
В этом посте я собираюсь объяснить два основных метода обучения с учителем :
- Классификация: в Классификации выходными данными являются дискретные данные. Проще говоря, это означает, что мы собираемся классифицировать данные на основе определенных функций. Например, различие между яблоками и апельсинами на основе их формы, цвета, текстуры и т. Д. В этом примере форма, цвет и текстура известны как 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