Искусственный интеллект. Машинное обучение
Шрифт:
Этот анализ помогает выявить общие характеристики опухолей и потенциально помогает в их классификации или определении риска злокачественного развития.
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Загрузка набора данных
breast_cancer_data = load_breast_cancer
# Преобразование данных в DataFrame
data = pd.DataFrame(data=breast_cancer_data.data, columns=breast_cancer_data.feature_names)
#
data['target'] = breast_cancer_data.target
# Создание объекта KMeans с 2 кластерами (для злокачественных и доброкачественных опухолей)
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, который работает следующим образом:
1. Загрузка данных: Сначала мы загружаем данные о покупках клиентов из файла "mall_customers.csv".
2. Выбор признаков: Мы выбираем два признака для кластеризации – "Age" (возраст клиентов) и "Spending Score" (расходы клиентов).
3. Стандартизация данных: Поскольку признаки имеют разные диапазоны значений, мы стандартизируем их с помощью `StandardScaler`, чтобы все признаки имели среднее значение 0 и стандартное отклонение 1.
4. Определение количества кластеров: В данном примере мы выбираем 5 кластеров, но это число можно выбирать исходя из предпочтений или на основе бизнес-задачи.
5. Применение метода кластеризации K-means: Мы создаем объект `KMeans` с указанным количеством кластеров и применяем его к стандартизированным данным методом `fit`. Затем мы используем полученную модель для предсказания кластеров для каждого клиента.
6. Визуализация результатов: Мы визуализируем результаты кластеризации, размещая каждого клиента на плоскости с осью X (возраст) и осью Y (расходы), окрашивая их в соответствии с прогнозируемым кластером. Также мы отображаем центры кластеров (центроиды) красными крестами.
Обучение с подкреплением (Reinforcement Learning)
Обучение с подкреплением представляет собой класс задач машинного обучения, где модель, называемая агентом, взаимодействует с окружающей средой и принимает решения с целью максимизации некоторой численной награды или минимизации потерь. Этот процесс аналогичен обучению живых существ в реальном мире: агент получает обратную связь в виде вознаграждения или наказания за свои действия, что помогает ему корректировать свое поведение и принимать лучшие решения в будущем.
Основной целью обучения с подкреплением является нахождение стратегии действий, которая максимизирует общее суммарное вознаграждение в течение длительного периода времени. Для этого агент должен учитывать текущее состояние окружающей среды, возможные действия и ожидаемые награды или потери, чтобы выбирать наилучшие действия в каждый момент времени.
Примеры задач обучения с подкреплением включают обучение агентов в компьютерных играх, где агенту нужно изучить стратегии для достижения победы или достижения определенных целей, а также управление роботами в реальном мире, где агенту нужно принимать решения на основе восприятия окружающей среды и выполнения задач, например, перемещение в пространстве или выполнение определенных действий.