Обучение с учителем – это фундаментальная концепция машинного обучения, при которой мы учим модель изучать шаблоны и делать прогнозы на основе помеченных обучающих данных. Он широко используется в различных областях: от классификации изображений до обработки естественного языка. В этой статье мы рассмотрим различные методы обучения с учителем и предоставим примеры кода, которые помогут новичкам понять и реализовать их.
Метод 1: линейная регрессия
Линейная регрессия — это простой и широко используемый алгоритм контролируемого обучения для прогнозирования непрерывной целевой переменной. Давайте возьмем простой пример прогнозирования цен на жилье в зависимости от его площади.
import numpy as np
from sklearn.linear_model import LinearRegression
# Training data
X_train = np.array([[100], [150], [200], [250], [300]])
y_train = np.array([250000, 350000, 450000, 550000, 650000])
# Create and train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Predicting house price for a new area
X_test = np.array([[175]])
predicted_price = model.predict(X_test)
print(f"Predicted price for an area of 175 sq. ft: ${predicted_price[0]}")
Метод 2: Деревья решений
Деревья решений — это универсальные алгоритмы обучения с учителем, которые могут обрабатывать как числовые, так и категориальные данные. Они создают структуру, подобную блок-схеме, для прогнозирования. Давайте воспользуемся знаменитым набором данных Iris, чтобы классифицировать цветы ириса по их особенностям.
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create and train the model
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# Predicting the class for a new sample
new_sample = [[5.0, 3.6, 1.4, 0.2]]
predicted_class = model.predict(new_sample)
print(f"Predicted class for the new sample: {iris.target_names[predicted_class[0]]}")
Метод 3: Машины опорных векторов (SVM)
Машины опорных векторов — это мощные алгоритмы обучения с учителем, используемые для задач классификации и регрессии. Они конструируют гиперплоскости или наборы гиперплоскостей в многомерном пространстве для разделения разных классов. Давайте классифицируем опухоли молочной железы как злокачественные или доброкачественные, используя популярный набор данных рака молочной железы штата Висконсин (диагностика).
from sklearn.datasets import load_breast_cancer
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load the Breast Cancer dataset
data = load_breast_cancer()
X = data.data
y = data.target
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create and train the model
model = SVC()
model.fit(X_train, y_train)
# Predicting the class for the test set
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
Обучение с учителем лежит в основе многих приложений машинного обучения. В этой статье мы исследовали три популярных метода: линейную регрессию для задач регрессии, деревья решений для классификации и машины опорных векторов как для классификации, так и для регрессии. Реализовав эти примеры кода, новички смогут получить практическое понимание того, как работает обучение с учителем. Не забывайте экспериментировать с различными наборами данных и настраивать гиперпараметры для достижения оптимальных результатов в реальных сценариях.