18+
реклама
18+
Бургер менюБургер меню

Джейд Картер – Искусственный интеллект. Машинное обучение (страница 7)

18

kmeans = KMeans(n_clusters=2)

# Обучение модели на данных без меток классов

kmeans.fit(data.drop('target', axis=1))

# Получение меток кластеров для каждого образца

cluster_labels = kmeans.labels_

# Визуализация кластеров

plt.scatter(data['mean radius'], data['mean texture'], c=cluster_labels, cmap='viridis')

plt.xlabel('Mean Radius')

plt.ylabel('Mean Texture')

plt.title('KMeans Clustering')

plt.show()

Пример 3

Давайте возьмем набор данных о покупках клиентов в магазине и применим к нему метод кластеризации K-means. В этом примере мы будем использовать набор данных "Mall Customer Segmentation Data", который содержит информацию о клиентах магазина и их покупках.

```python

# Импортируем необходимые библиотеки

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.cluster import KMeans

from sklearn.preprocessing import StandardScaler

# Загружаем данные

data = pd.read_csv('mall_customers.csv')

# Посмотрим на структуру данных

print(data.head())

# Определяем признаки для кластеризации (в данном случае возраст и расходы)

X = data[['Age', 'Spending Score (1-100)']].values

# Стандартизируем данные

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

# Определяем количество кластеров

k = 5

# Применяем метод кластеризации K-means

kmeans = KMeans(n_clusters=k, random_state=42)

kmeans.fit(X_scaled)

y_pred = kmeans.predict(X_scaled)

# Визуализируем результаты кластеризации

plt.figure(figsize=(8, 6))

plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=y_pred, cmap='viridis')

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='x', color='red', s=300, linewidth=5, label='Centroids')

plt.xlabel('Age')

plt.ylabel('Spending Score (1-100)')

plt.title('K-means clustering of Mall Customers')

plt.legend()

plt.show()

```

В этом коде мы загружаем данные о покупках клиентов, выбираем признаки для кластеризации (в данном случае возраст и расходы), стандартизируем данные, применяем метод кластеризации K-means и визуализируем результаты кластеризации. Каждый кластер обозначен разным цветом, а центроиды кластеров отмечены красными крестами.

В коде мы используем метод кластеризации K-means, который работает следующим образом:

1. Загрузка данных: Сначала мы загружаем данные о покупках клиентов из файла "mall_customers.csv".

2. Выбор признаков: Мы выбираем два признака для кластеризации – "Age" (возраст клиентов) и "Spending Score" (расходы клиентов).

3. Стандартизация данных: Поскольку признаки имеют разные диапазоны значений, мы стандартизируем их с помощью `StandardScaler`, чтобы все признаки имели среднее значение 0 и стандартное отклонение 1.

4. Определение количества кластеров: В данном примере мы выбираем 5 кластеров, но это число можно выбирать исходя из предпочтений или на основе бизнес-задачи.

5. Применение метода кластеризации K-means: Мы создаем объект `KMeans` с указанным количеством кластеров и применяем его к стандартизированным данным методом `fit`. Затем мы используем полученную модель для предсказания кластеров для каждого клиента.

6. Визуализация результатов: Мы визуализируем результаты кластеризации, размещая каждого клиента на плоскости с осью X (возраст) и осью Y (расходы), окрашивая их в соответствии с прогнозируемым кластером. Также мы отображаем центры кластеров (центроиды) красными крестами.

Обучение с подкреплением (Reinforcement Learning)

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

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

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

Пример 1

Давайте рассмотрим пример задачи обучения с подкреплением на простом примере – агент играет в игру "Сетка мира" (Gridworld). В этой игре агент находится на игровом поле, представленном в виде сетки, и его целью является достижение целевой ячейки, избегая при этом препятствий.

Для начала определим игровое поле. Давайте создадим сетку размером 4x4, где каждая ячейка может быть либо пустой, либо содержать препятствие или целевую ячейку.

```python

import numpy as np

# Создание игрового поля

grid_world = np.array([

[0, 0, 0, 0], # Пустая ячейка