Освоение машинного обучения с помощью Python и scikit-learn: полное руководство для специалистов по данным и энтузиастов искусственного интеллекта
Введение
Не секрет, что наука о данных и машинное обучение стали важными компонентами современного делового ландшафта. С появлением искусственного интеллекта и растущим спросом на аналитику на основе данных все больше и больше компаний обращаются к этим мощным инструментам, чтобы получить конкурентное преимущество. К счастью, Python стал предпочтительным языком для многих специалистов по данным, а библиотека обучения Sci-kit предоставляет полный набор инструментов для создания и развертывания моделей машинного обучения.
В этой статье мы рассмотрим 50 наиболее полезных функций, предоставляемых Sci-kitlearn для задач машинного обучения. От предварительной обработки данных до выбора и оценки модели — эти функции охватывают широкий спектр методов и методологий для решения реальных задач. Как будто этого недостаточно, мы будем использовать готовые наборы данных, чтобы проиллюстрировать применение каждой функции, чтобы вам было легче следовать и применять их в ваших собственных проектах.
Звучит фантастически? А теперь сюрприз: многие из этих функций просты в использовании и требуют для реализации всего несколько строк кода. Независимо от того, являетесь ли вы опытным специалистом по данным или только начинаете, эта памятка поможет вам лучше познакомиться с мощными инструментами, доступными в Sci-kit, и позволит вам ускорить свои проекты по науке о данных и машинному обучению.
Итак, возьмите свой любимый напиток, откиньтесь на спинку кресла и давайте погрузимся в мир научного обучения!
train_test_split
Эта функция используется для разделения набора данных на наборы для обучения и тестирования. Он принимает набор данных, целевую переменную и размер тестового набора в качестве параметров.
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split iris = load_iris() X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)
StandardScaler
Эта функция используется для стандартизации набора данных путем вычитания среднего значения и деления на стандартное отклонение. Он часто используется для подготовки данных для алгоритмов, требующих стандартизированного ввода.
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test)
MinMaxScaler
Эта функция используется для масштабирования набора данных до определенного диапазона (обычно от 0 до 1). Он часто используется для подготовки данных для алгоритмов, требующих ввода в определенном диапазоне.
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test)
LabelEncoder
Эта функция используется для кодирования категориальных переменных как целых чисел. Он часто используется для подготовки данных для алгоритмов, которые не могут обрабатывать категориальные переменные.
from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() y_train_encoded = encoder.fit_transform(y_train) y_test_encoded = encoder.transform(y_test)
OneHotEncoder
Эта функция используется для кодирования категориальных переменных как двоичных векторов. Он часто используется для подготовки данных для алгоритмов, требующих двоичных входных данных.
from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder() y_train_encoded = encoder.fit_transform(y_train.reshape(-1,1)) y_test_encoded = encoder.transform(y_test.reshape(-1,1))
DecisionTreeClassifier
Эта функция используется для создания модели дерева решений. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.tree import DecisionTreeClassifier clf = DecisionTreeClassifier() clf.fit(X_train_scaled, y_train_encoded)
RandomForestClassifier
Эта функция используется для создания модели случайного леса. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(X_train_scaled, y_train_encoded)
KMeans
Эта функция используется для создания модели кластеризации K-средних. Он принимает набор данных и количество кластеров в качестве параметров.
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans.fit(X_train_scaled)
LinearRegression
Эта функция используется для создания модели линейной регрессии. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.linear_model import LinearRegression reg = LinearRegression() reg.fit(X_train_scaled, y_train)
LogisticRegression
Эта функция используется для создания модели логистической регрессии. Он принимает обучающие данные и помечает их как код params.scssCopy.
from sklearn.linear_model import LogisticRegression clf = LogisticRegression() clf.fit(X_train_scaled, y_train_encoded)
SVM
Эта функция используется для создания модели машины опорных векторов. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.svm import SVC clf = SVC() clf.fit(X_train_scaled, y_train_encoded)
NaiveBayes
Эта функция используется для создания наивной байесовской модели. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.naive_bayes import GaussianNB clf = GaussianNB() clf.fit(X_train_scaled, y_train_encoded)
GridSearchCV
Эта функция используется для выполнения поиска по сетке, чтобы найти лучшие гиперпараметры для модели. Он принимает модель, сетку гиперпараметров и стратегию перекрестной проверки в качестве параметров.
from sklearn.model_selection import GridSearchCV param_grid = {'n_estimators': [10, 50, 100], 'max_depth': [2, 4, 8]} grid_search = GridSearchCV(RandomForestClassifier(), param_grid, cv=5) grid_search.fit(X_train_scaled, y_train_encoded)
Pipeline
Эта функция используется для создания конвейера шагов предварительной обработки данных и моделирования. Он принимает список кортежей, где каждый кортеж содержит имя шага и соответствующую функцию.
from sklearn.pipeline import Pipeline pipe = Pipeline([ ('scaler', StandardScaler()), ('clf', RandomForestClassifier())]) pipe.fit(X_train, y_train)
PCA
Эта функция используется для выполнения анализа основных компонентов в наборе данных. В качестве параметра принимается количество компонентов.
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_train_pca = pca.fit_transform(X_train_scaled)
TSNE
Эта функция используется для выполнения t-распределенного стохастического встраивания соседей в набор данных. Требуется количество измерений для встраивания данных в качестве параметра.
from sklearn.manifold import TSNE tsne = TSNE(n_components=2) X_train_tsne = tsne.fit_transform(X_train_scaled)
GradientBoostingClassifier
Эта функция используется для создания классификатора повышения градиента. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import GradientBoostingClassifier clf = GradientBoostingClassifier() clf.fit(X_train_scaled, y_train_encoded)
AdaBoostClassifier
Эта функция используется для создания классификатора AdaBoost. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import AdaBoostClassifier clf = AdaBoostClassifier() clf.fit(X_train_scaled, y_train_encoded)
Lasso
Эта функция используется для выполнения регрессии Лассо. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.linear_model import Lasso reg = Lasso() reg.fit(X_train_scaled, y_train)
Ridge
Эта функция используется для выполнения регрессии Риджа. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.linear_model import Ridge reg = Ridge() reg.fit(X_train_scaled, y_train)
ElasticNet
Эта функция используется для выполнения регрессии эластичной сети. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.linear_model import ElasticNet reg = ElasticNet() reg.fit(X_train_scaled, y_train)
SGDClassifier
Эта функция используется для создания классификатора стохастического градиентного спуска. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.linear_model import SGDClassifier clf = SGDClassifier() clf.fit(X_train_scaled, y_train_encoded)
KernelPCA
Эта функция используется для выполнения анализа основных компонентов ядра в наборе данных. В качестве параметров он принимает функцию ядра и количество компонентов, которые необходимо сохранить.
from sklearn.decomposition import KernelPCA kpca = KernelPCA(kernel='rbf', n_components=2) X_train_kpca = kpca.fit_transform(X_train_scaled)
IsolationForest
Эта функция используется для создания модели изолированного леса для обнаружения аномалий. Он принимает уровень загрязнения и случайное начальное число в качестве параметров.
from sklearn.ensemble import IsolationForest clf = IsolationForest(contamination=0.1, random_state=42) clf.fit(X_train_scaled)
DBSCAN
Эта функция используется для выполнения пространственной кластеризации приложений с шумом на основе плотности (DBSCAN) в наборе данных. В качестве параметров он принимает минимальное количество выборок и радиус окрестности.
from sklearn.cluster import DBSCAN dbscan = DBSCAN(min_samples=5, eps=0.5) dbscan.fit(X_train_scaled)
AgglomerativeClustering
Эта функция используется для выполнения иерархической кластеризации набора данных. В качестве параметров он принимает количество кластеров и метод связывания.
from sklearn.cluster import AgglomerativeClustering agg = AgglomerativeClustering(n_clusters=3, linkage='ward') agg.fit(X_train_scaled)
KernelDensity
Эта функция используется для оценки функции плотности вероятности набора данных с использованием оценщика плотности ядра. Он принимает функцию ядра и пропускную способность в качестве параметров.
from sklearn.neighbors import KernelDensity kde = KernelDensity(kernel='gaussian', bandwidth=0.1) kde.fit(X_train_scaled)
GaussianMixture
Эта функция используется для моделирования гауссовой смеси в наборе данных. В качестве параметров он принимает количество компонентов и тип ковариации.
from sklearn.mixture import GaussianMixture gmm = GaussianMixture(n_components=3, covariance_type='full') gmm.fit(X_train_scaled)
NearestNeighbors
Эта функция используется для поиска ближайших соседей в наборе данных. В качестве параметров он принимает количество соседей и метрику расстояния.
from sklearn.neighbors import NearestNeighbors nn = NearestNeighbors(n_neighbors=5, metric='euclidean') nn.fit(X_train_scaled)
KNNClassifier
Эта функция используется для создания классификатора K ближайших соседей. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.neighbors import KNeighborsClassifier clf = KNeighborsClassifier() clf.fit(X_train_scaled, y_train_encoded)
LDA
Эта функция используется для выполнения линейного дискриминантного анализа набора данных. В качестве параметра принимается количество компонентов.
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis lda = LinearDiscriminantAnalysis(n_components=2) X_train_lda = lda.fit_transform(X_train_scaled, y_train_encoded)
QDA
Эта функция используется для выполнения квадратичного дискриминантного анализа набора данных.
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis qda = QuadraticDiscriminantAnalysis() qda.fit(X_train_scaled, y_train_encoded)
RANSACRegressor
Эта функция используется для выполнения регрессии RANSAC в наборе данных. Он принимает базовую оценку и максимальное количество итераций в качестве параметров.
from sklearn.linear_model import RANSACRegressor from sklearn.linear_model import LinearRegression ransac = RANSACRegressor(base_estimator=LinearRegression(), max_trials=100) ransac.fit(X_train_scaled, y_train)
GradientBoostingRegressor
Эта функция используется для создания модели регрессии с повышением градиента. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import GradientBoostingRegressor reg = GradientBoostingRegressor() reg.fit(X_train_scaled, y_train)
AdaBoostRegressor
Эта функция используется для создания регрессионной модели AdaBoost. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import AdaBoostRegressor reg = AdaBoostRegressor() reg.fit(X_train_scaled, y_train)
SVR
Эта функция используется для создания модели регрессии опорных векторов. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.svm import SVR reg = SVR() reg.fit(X_train_scaled, y_train)
DecisionTreeRegressor
Эта функция используется для создания регрессионной модели дерева решений. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.tree import DecisionTreeRegressor reg = DecisionTreeRegressor() reg.fit(X_train_scaled, y_train)
RandomForestRegressor
Эта функция используется для создания модели регрессии случайного леса. Он принимает обучающие данные и метки в качестве параметров.
from sklearn.ensemble import RandomForestRegressor reg = RandomForestRegressor() reg.fit(X_train_scaled, y_train)
PolynomialFeatures
Эта функция используется для создания полиномиальных признаков из набора данных. В качестве параметра принимает степень многочлена.
from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X_train_poly = poly.fit_transform(X_train_scaled)
TruncatedSVD
Эта функция используется для выполнения усеченного разложения по сингулярным значениям в наборе данных. В качестве параметра требуется количество компонентов, которые необходимо сохранить. Код scssCopy
from sklearn.decomposition import TruncatedSVD svd = TruncatedSVD(n_components=2) X_train_svd = svd.fit_transform(X_train_scaled)
NMF
Эта функция используется для выполнения неотрицательной матричной факторизации набора данных. Он принимает количество компонентов для извлечения в качестве кода параметра.scssCopy
from sklearn.decomposition import NMF nmf = NMF(n_components=2) X_train_nmf = nmf.fit_transform(X_train_scaled)
Binarizer
Эта функция используется для бинаризации набора данных на основе порогового значения. Он принимает пороговое значение в качестве параметра.
from sklearn.preprocessing import Binarizer binarizer = Binarizer(threshold=0.5) X_train_binarized = binarizer.fit_transform(X_train_scaled)
LabelBinarizer
Эта функция используется для бинаризации категориальных переменных как бинарных векторов. Он часто используется для подготовки данных для алгоритмов, требующих двоичных входных данных.
from sklearn.preprocessing import LabelBinarizer binarizer = LabelBinarizer() y_train_binarized = binarizer.fit_transform(y_train)
MultiLabelBinarizer
Эта функция используется для бинаризации нескольких категориальных переменных как бинарных векторов. Он часто используется для подготовки данных для алгоритмов, требующих двоичных входных данных.
from sklearn.preprocessing import MultiLabelBinarizer binarizer = MultiLabelBinarizer() y_train_binarized = binarizer.fit_transform(y_train)
LabelPropagation
Эта функция используется для распространения меток в наборе данных. В качестве параметров он принимает функцию ядра и количество итераций.
from sklearn.semi_supervised import LabelPropagation propagation = LabelPropagation(kernel='knn', max_iter=100) propagation.fit(X_train_scaled, y_train)
LabelSpreading
Эта функция используется для распространения меток в наборе данных. В качестве параметров он принимает функцию ядра и количество итераций.
from sklearn.semi_supervised import LabelSpreading spreading = LabelSpreading(kernel='knn', max_iter=100) spreading.fit(X_train_scaled, y_train)
CalibratedClassifierCV
Эта функция используется для калибровки вероятностей классификатора. В качестве параметров он принимает базовый классификатор и метод калибровки.
from sklearn.calibration import CalibratedClassifierCV from sklearn.linear_model import LogisticRegression clf = LogisticRegression() calibrated_clf = CalibratedClassifierCV(clf, cv=5, method='sigmoid') calibrated_clf.fit(X_train_scaled, y_train_encoded)
DummyClassifier
Эта функция используется для создания фиктивного классификатора, который прогнозирует с использованием простой стратегии. Он принимает стратегию в качестве параметра.
from sklearn.dummy import DummyClassifier dummy = DummyClassifier(strategy='most_frequent') dummy.fit(X_train_scaled, y_train_encoded)
Заключение
В заключение мы рассмотрели 50 наиболее полезных функций, предоставляемых Sci-kitlearn для задач машинного обучения. Т
Эти функции охватывают широкий спектр методов и методологий, облегчая вам решение реальных проблем и ускоряя ваши проекты по науке о данных.
Если вы хотите быть в курсе последних новостей и тенденций в области науки о данных, машинного обучения и искусственного интеллекта, я рекомендую вам подписаться на мой информационный бюллетень.
Подписавшись на мою рассылку, вы будете получать регулярные обновления новых статей, учебных пособий и ресурсов, которые помогут вам улучшить свои навыки и оставаться на шаг впереди. Вы можете подписаться на него, заполнив следующие формы;
Вот моя шпаргалка NumPy.
Вот исходный код проекта данных Как стать миллиардером.
Вот исходный код проекта данных Задача классификации с 6 различными алгоритмами с использованием Python.
Вот исходный код проекта данных Дерево решений в анализе энергоэффективности.
Вот исходный код проекта данных Анализ статей DataDrivenInvestor 2022.
Спасибо за прочтение!
Если вы все еще не являетесь участником Medium и хотите учиться, читая, вот моя реферальная ссылка.
«Машинное обучение — это последнее изобретение, которое когда-либо понадобится человечеству». Ник Бостром