Найти в Дзене
DSSystem

Основы машинного обучения на Python: первые шаги с Scikit-Learn

Машинное обучение (ML) звучит как что-то сложное, но на деле это просто способ научить компьютер находить закономерности в данных и делать прогнозы. Хотите предсказать, сколько лайков наберёт ваш пост? Или понять, спам это или нет? Всё это можно сделать с помощью ML. Сегодня разберёмся с основами на Python, используя библиотеку Scikit-Learn — одну из самых популярных и простых для новичков. Представьте, что вы учите ребёнка различать кошек и собак. Вы показываете ему картинки, говорите: "Это кошка, а это собака", и со временем он начинает понимать разницу. Машинное обучение работает похожим образом: вы даёте компьютеру данные (например, характеристики животных) и правильные ответы (кошка или собака). Компьютер "учится" на этих примерах и потом может сам классифицировать новые данные. Есть три основных типа ML: Сегодня мы попробуем обучение с учителем, используя Scikit-Learn. Scikit-Learn — это библиотека на Python, которая упрощает работу с машинным обучением. Она содержит готовые алго
Оглавление

Машинное обучение (ML) звучит как что-то сложное, но на деле это просто способ научить компьютер находить закономерности в данных и делать прогнозы. Хотите предсказать, сколько лайков наберёт ваш пост? Или понять, спам это или нет? Всё это можно сделать с помощью ML. Сегодня разберёмся с основами на Python, используя библиотеку Scikit-Learn — одну из самых популярных и простых для новичков.

Что такое машинное обучение?

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

Есть три основных типа ML:

  • Обучение с учителем: у вас есть данные с правильными ответами (например, "это спам/не спам").
  • Обучение без учителя: данных с ответами нет, компьютер сам ищет закономерности (например, группирует клиентов по интересам).
  • Обучение с подкреплением: компьютер учится через пробы и ошибки, как в играх.

Сегодня мы попробуем обучение с учителем, используя Scikit-Learn.

Что такое Scikit-Learn?

Scikit-Learn — это библиотека на Python, которая упрощает работу с машинным обучением. Она содержит готовые алгоритмы, инструменты для подготовки данных и оценки моделей. Установить её просто: достаточно команды pip install scikit-learn.

Первые шаги: простой пример с классификацией

Давайте попробуем классифицировать цветы ириса по их размерам. Этот набор данных (Iris) — классика для новичков. Мы будем предсказывать вид цветка (setosa, versicolor или virginica) на основе длины и ширины лепестков и чашелистиков.

Шаг 1: Подготовка данных

Сначала импортируем нужные библиотеки и загрузим данные. Набор Iris уже встроен в Scikit-Learn.

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Загружаем данные
iris = load_iris()
X = iris.data # Характеристики цветков (длина, ширина и т.д.)
y = iris.target # Виды цветков (0, 1, 2)

# Делим данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

X — это наши данные (размеры цветков), а y — правильные ответы (вид цветка). Мы разделили данные на две части: 80% для обучения модели, 20% для проверки.

Шаг 2: Создаём и обучаем модель

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

# Создаём модель
model = LogisticRegression(max_iter=200)

# Обучаем её на тренировочных данных
model.fit(X_train, y_train)

Шаг 3: Делаем предсказания и проверяем точность

Теперь проверим, как модель справляется с тестовыми данными.

# Делаем предсказания
predictions = model.predict(X_test)

# Проверяем точность
accuracy = model.score(X_test, y_test)
print(f"Точность модели: {accuracy * 100:.2f}%")

Если всё сделано правильно, точность будет около 90–100%. Неплохо для первого раза, правда?

Шаг 4: Пробуем предсказать для нового цветка

Допустим, у вас есть цветок с такими характеристиками: длина чашелистика 5.1 см, ширина 3.5 см, длина лепестка 1.4 см, ширина лепестка 0.2 см. Что это за вид?

new_flower = np.array([[5.1, 3.5, 1.4, 0.2]])
prediction = model.predict(new_flower)
print(f"Предсказанный вид: {iris.target_names[prediction[0]]}")

Скорее всего, модель скажет, что это setosa. Поздравляем, вы только что сделали своё первое предсказание!

Что дальше?

Это только начало! Scikit-Learn позволяет решать более сложные задачи:

  • Прогнозировать цены на жильё.
  • Классифицировать тексты (например, отзывы на "положительные" и "отрицательные").
  • Находить аномалии в данных (например, мошеннические транзакции).

Попробуйте поэкспериментировать с другими наборами данных или алгоритмами (например, деревья решений или SVM). А если хотите углубиться, изучите, как обрабатывать данные перед обучением — это сильно влияет на результат.

Следите за нашим каналом, и мы расскажем больше о машинном обучении, Python и других ИТ-темах!