Python (9/10)

Введение в машинное обучение с scikit-learn: простой пример (9/10)

!!!! В данном посте, я не учу ML, я показываю возможности python. Для использования кодов ниже используйте Jupiter Notebook!!!!

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

Подготовка данных

Для начала нам нужны данные, состоящие из признаков (features) и целевой переменной (target) для обучения модели. Вот небольшой пример с искусственными данными:

python import numpy as np import pandas as pd from sklearn.model_selection import train_test_split

#Создаём простой DataFrame

data = {     'height': [170, 180, 160, 175, 165, 155],     'weight': [65, 80, 55, 70, 60, 50],     'gender': ['male', 'male', 'female', 'male', 'female', 'female'] } df = pd.DataFrame(data)

#Преобразуем целевую переменную в числовой формат

df['gender'] = df['gender'].map({'male': 0, 'female': 1})

#Разделяем данные на признаки и целевую переменную

X = df[['height', 'weight']] y = df['gender']

#Разбиваем данные на тренировочную и тестовую выборки

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Классификация: Логистическая регрессия

Логистическая регрессия - одна из самых простых и популярных моделей для бинарной классификации (например, определить пол по росту и весу).

python from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score

#Инициализируем и обучаем модель

model = LogisticRegression() model.fit(X_train, y_train)

#Делаем предсказания

y_pred = model.predict(X_test)

#Оцениваем качество

print("Accuracy:", accuracy_score(y_test, y_pred))

Кластеризация: K-средних

Кластеризация -  это задача группировки объектов по схожести без заранее известных меток. Метод K-средних отлично подходит для поиска естественных групп в данных.

python from sklearn.cluster import KMeans

#Используем только признаки

X_cluster = df[['height', 'weight']]

#Обучаем модель на 2 кластера

kmeans = KMeans(n_clusters=2, random_state=42) kmeans.fit(X_cluster)

#Получаем кластеры для каждого объекта

clusters = kmeans.labels_ print(clusters)

Итоги

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

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