Учебник по машинному обучению

Машинное обучение — это область искусственного интеллекта (ИИ), которая позволяет компьютерным системам автоматически обучаться и улучшать свою эффективность с помощью данных и алгоритмов.

Машинное обучение позволяет машинам принимать решения и делать прогнозы на основе опыта (данных).

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

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


Различия между машинным обучением и традиционным программированием

Традиционное программирование Машинное обучение
Программисты пишут явные правила Компьютеры изучают правила на основе данных
Подходит для ситуаций, где задачи хорошо определены и правила ясны Подходит для сложных ситуаций, где правила трудно определить
Пример: написание программы-калькулятора Пример: написание программы распознавания спам-писем


Три основных элемента машинного обучения

Машинное обучение состоит из трёх основных элементов:

1. Данные

Данные — это топливо машинного обучения. Чем выше качество и больше количество данных, тем лучше обычно может обучаться модель.

  • Обучающие данные: Данные, используемые для обучения модели
  • Тестовые данные: данные, используемые для оценки эффективности обучения модели
  • Данные из реального мира: новые данные, с которыми модель сталкивается в реальных приложениях

2. Алгоритм

Алгоритмы — это методы обучения в машинном обучении; разные алгоритмы подходят для разных типов задач.

  • Обучение с учителем: Обучение с размеченными ответами
  • Обучение без учителя: нет размеченных ответов; находит закономерности самостоятельно
  • Обучение с подкреплением: Обучение методом проб и ошибок и вознаграждений

3. Модель

Модель — это результат обучения, как и знания, которые приобретает студент.

  • Процесс обучения: алгоритм выявляет закономерности в данных
  • Процесс вывода: использование изученных закономерностей для прогнозирования

Пример

Далее мы на простом примере разберём основной рабочий процесс машинного обучения.

Мы будем использовать Python, чтобы создать простую модель линейной регрессии для прогнозирования цен на дома.

Пример

# Импорт необходимых библиотек
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import seaborn as sns

# Установить стиль графика, чтобы он выглядел лучше
sns.set_style("whitegrid")
# -------------------------- Начало настройки китайского шрифта --------------------------
plt.rcParams['font.sans-serif'] = [
    # Сначала Windows
    'SimHei', 'Microsoft YaHei',
    # Сначала macOS
    'PingFang SC', 'Heiti TC',
    # Сначала Linux
    'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# Исправить проблему отображения отрицательных знаков в виде квадратов
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- Конец настройки китайского шрифта --------------------------

# 1. Подготовьте данные
# Предположим, у нас есть данные о площади домов и соответствующих ценах
# Площадь дома (квадратные метры)
house_sizes = np.array([50, 60, 70, 80, 90, 100, 110, 120]).reshape(-1, 1)
# Цена дома (десять тысяч юаней)
house_prices = np.array([150, 180, 210, 240, 270, 300, 330, 360])

# 2. Создайте и обучите модель
# Создайте модель линейной регрессии
model = LinearRegression()
# Обучите модель на данных (изучите зависимость между площадью и ценой)
model.fit(house_sizes, house_prices)

# 3. Используйте модель для прогнозирования
# Предскажите цену дома площадью 85 квадратных метров
predicted_price = model.predict([[85]])
print(f"Прогнозируемая цена дома площадью 85 квадратных метров: {predicted_price)

# 4. Визуализируйте результаты
plt.scarc⟦⟧house_sizes(house_sizes, house_prices, color='blue', label='Фактические данные')
plt.plot(house_sizes, model.predict(house_sizes), color='Линия прогноза', label='Prediction line')
plt.scarc([85], predicted_price, color='green', s=100, label='Точка предсказания')
plt.xlabel('Площадь дома (квадратные метры)')
plt.ylabel('Цена дома (десять тысяч юаней)')
plt.title('ПРИМЕР Тест по машинному обучению -- Связь между площадью дома и ценой')
plt.legend()
plt.grid(True)
plt.show()

Результат выполнения:

85 平方米的房屋预测价格:255.00 万元

Этот пример демонстрирует базовый рабочий процесс машинного обучения:

  1. Подготовьте данные (площадь дома и цена)
  2. Выберите алгоритм (линейная регрессия)
  3. Обучите модель (пусть компьютер изучит связь между площадью и ценой)
  4. Используйте модель для предсказания (предскажите цену для новой площади)

Выходной график выглядит следующим образом:

Другие расширения