Обучение с учителем с использованием Scikit - Learn

Beginner

This tutorial is from open-source community. Access the source code

Введение

В обучении с учителем мы хотим изучить связь между двумя наборами данных: наблюдаемыми данными X и внешней переменной y, которую мы хотим предсказать. Основные виды задач обучения с учителем: классификация и регрессия. В классификации цель - предсказать класс или категорию наблюдения, а в регрессии - предсказать непрерывную целевую переменную. В этом практическом занятии мы изучим концепции обучения с учителем и узнаем, как реализовать их с использованием scikit-learn - популярной библиотеки машинного обучения для Python. Мы рассмотрим такие темы, как классификация методом ближайшего соседа, линейная регрессия и методы опорных векторов (SVM).

Советы по работе с ВМ

После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook. Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook. Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 94%. Он получил 91% положительных отзывов от учащихся.

Классификация методом ближайшего соседа

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

Загрузка датасета iris
import numpy as np
from sklearn import datasets

iris_X, iris_y = datasets.load_iris(return_X_y=True)
Разделение данных на обучающую и тестовую выборки
np.random.seed(0)
indices = np.random.permutation(len(iris_X))
iris_X_train = iris_X[indices[:-10]]
iris_y_train = iris_y[indices[:-10]]
iris_X_test = iris_X[indices[-10:]]
iris_y_test = iris_y[indices[-10:]]
Создание и обучение классификатора методом ближайшего соседа
from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier()
knn.fit(iris_X_train, iris_y_train)
Предсказание
predictions = knn.predict(iris_X_test)

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

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

Загрузка датасета о диабете
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Создание и обучение модели линейной регрессии
from sklearn import linear_model

regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
Предсказание и расчет метрик качества
predictions = regr.predict(diabetes_X_test)
mse = np.mean((predictions - diabetes_y_test)**2)
variance_score = regr.score(diabetes_X_test, diabetes_y_test)

Методы опорных векторов (SVM)

В этом разделе мы изучим концепцию методов опорных векторов (SVM) и узнаем, как их можно использовать для задач классификации. SVM 旨在找到一个超平面,该超平面能最大程度地分隔不同类别的数据点。

Создание и обучение линейного SVM
from sklearn import svm

svc = svm.SVC(kernel='linear')
svc.fit(iris_X_train, iris_y_train)
Создание и обучение SVM с разными ядрами
svc_poly = svm.SVC(kernel='poly', degree=3)
svc_rbf = svm.SVC(kernel='rbf')

svc_poly.fit(iris_X_train, iris_y_train)
svc_rbf.fit(iris_X_train, iris_y_train)

Обзор

В этом практическом занятии мы изучили различные методы обучения с учителем и узнали, как их реализовать с использованием scikit-learn. Мы рассмотрели классификацию методом ближайшего соседа, линейную регрессию и методы опорных векторов (SVM). Эти методы позволяют предсказывать выходные переменные на основе высокомерных наблюдений и классифицировать данные по разным категориям. Применяя эти методы к реальным наборам данных, мы можем получить ценные знания и делать прогнозы в различных областях, таких как здравоохранение, финансы и социальные науки.