В блог
Какие есть типы обучения в Machine Learning? - IT Resume

Какие есть типы обучения в Machine Learning?

Дата последнего обновления: 05.03.2025
Дата размещения: 28.02.2025
Людмила Ильичева

Сегодня мы обсудим основные типы обучения в машинном обучении: обучение с учителем, обучение без учителя и обучение с подкреплением. На примерах разберем их отличия и применения в реальных задачах.

1. Обучение с учителем

При обучении с учителем алгоритм обучается на размеченных данных, где каждая запись имеет соответствующий выходной результат. Задача алгоритма — научиться предсказывать этот результат на новых данных.

Пример: Регрессия


import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Генерация данных
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([3, 4, 2, 5, 6])

# Обучение модели
model = LinearRegression()
model.fit(X, y)

# Предсказание
X_new = np.array([[6]])
y_pred = model.predict(X_new)

# Визуализация
plt.scatter(X, y, color='blue')
plt.plot(X, model.predict(X), color='red')  # Линия регрессии по всем данным
plt.scatter(X_new, y_pred, color='green', label='Предсказание для X=6')  # Предсказанное значение
plt.title("Линейная регрессия")
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.show()

В результате выполнения этого кода вы получите график с точками исходных данных и линией регрессии, которая показывает зависимость между переменной X и предсказанными значениями y. Это позволяет визуально оценить качество модели линейной регрессии.

2. Обучение без учителя

Обучение без учителя используется на неразмеченных данных. Алгоритм пытается найти скрытые структуры или паттерны в данных без явных меток.

Пример: Кластеризация

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# Генерация данных
X, y = make_blobs(n_samples=300, centers=4, random_state=42)

# Обучение модели
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)

# Предсказание кластеров
y_kmeans = kmeans.predict(X)

# Визуализация
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75)
plt.title("Кластеризация K-средних")
plt.show()

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

3. Обучение с подкреплением

Обучение с подкреплением позволяет агенту обучаться через взаимодействие с окружающей средой. В этом процессе агент принимает решения, выполняет действия и получает обратную связь в виде вознаграждений или штрафов. Цель агента — максимизировать общее вознаграждение за определённый период времени.

Пример кода: Задача балансировки палки на движущейся тележке.

import gym
import numpy as np

# Создание среды
env = gym.make('CartPole-v1')

# Параметры
num_episodes = 1000
max_steps = 200
reward_list = []

for episode in range(num_episodes):
    state = env.reset()
    total_reward = 0
    
    for step in range(max_steps):
        # Выбор действия (случайное действие)
        action = env.action_space.sample()
        
        # Выполнение действия и получение нового состояния и вознаграждения
        next_state, reward, done, _, _ = env.step(action)
        
        total_reward += reward
        
        if done:
            break
        
        state = next_state
    
    reward_list.append(total_reward)

# Закрытие среды
env.close()

# Вывод результатов
print(f"Среднее вознаграждение за {num_episodes} эпизодов: {np.mean(reward_list)}")

После выполнения этого кода вы получите среднее вознаграждение: это значение будет отражать, насколько хорошо агент справляется с задачей балансировки палки на тележке.

Заключение

Каждый из этих типов обучения имеет свои уникальные применения и подходы, позволяя решать широкий спектр задач в области машинного обучения и искусственного интеллекта. Понимание этих методов помогает выбрать наиболее подходящий подход для конкретной задачи и эффективно применять алгоритмы машинного обучения в практике.

Подпишитесь на нашу рассылку
Имя*
Email*
Номер телефона*
Заполняя данную форму, Вы соглашаетесь с политикой конфиденциальности
Никакого спама. Только точечные рассылки с лучшими материалами.