Машинное обучение — это быстрорастущая технология в современном мире. Машинное обучение уже интегрировано в нашу повседневную жизнь с такими инструментами, как распознавание лиц, домашние помощники, сканеры резюме и беспилотные автомобили.
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
- Scikit-learn Tutorial: как реализовать линейную регрессию
- Ответьте на 40 лучших вопросов для интервью по машинному обучению
- Шпаргалка Pandas: 35 лучших команд и операций
Начать обсуждение
Какой ваш любимый пример использования машинного обучения в реальном мире? Была ли эта статья полезна? Дайте нам знать в комментариях ниже!