KnigkinDom.org» » »📕 Искусственный интеллект. Машинное обучение - Джейд Картер

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

Книгу Искусственный интеллект. Машинное обучение - Джейд Картер читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

1 ... 4 5 6 7 8 9 10 11 12 ... 25
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
кластеров

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], # Пустая ячейка

[0, -1, 0, -1], # Препятствие (-1)

[0, 0, 0, -1], # Препятствие (-1)

[0, -1, 0, 1] # Целевая ячейка (1)

])

```

Теперь создадим простое правило для агента: если агент находится в ячейке, он может выбирать случайное действие: двигаться вверх, вниз, влево или вправо. Если агент попадает в препятствие, он не двигается и остается на месте. Если агент достигает целевой ячейки, он получает награду +10 и игра завершается.

```python

import random

# Функция для выполнения действия в игре

def take_action(state):

row, col = state

if grid_world[row, col] == -1: # Если попали в препятствие, остаемся на месте

return state

action = random.choice(['up', 'down', 'left', 'right']) # Случайное действие

if action == 'up':

row = max(0, row – 1)

elif action == 'down':

row = min(grid_world.shape[0] – 1, row + 1)

elif action == 'left':

col = max(0, col – 1)

elif action == 'right':

col = min(grid_world.shape[1] – 1, col + 1)

return (row, col)

# Функция для проверки завершения игры и получения награды

def get_reward(state):

row, col = state

if grid_world[row, col] == 1: # Если достигли целевой ячейки

return 10, True

return 0, False # Игра продолжается

# Функция для запуска игры

def play_game():

state = (0, 0) # Начальное состояние агента

total_reward = 0

done = False

while not done:

state = take_action(state)

reward, done = get_reward(state)

total_reward += reward

return total_reward

# Запуск игры

total_reward = play_game()

print("Total reward:", total_reward)

```

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

Пример 2

Рассмотрим пример задачи с использованием обучения с подкреплением. Давайте представим симуляцию игры в кости, где агент должен научиться выбирать наилучшие действия (выбор числа от 1 до 6) для максимизации своего выигрыша.

```python

import numpy as np

class DiceGame:

def __init__(self):

self.state = 0 # текущее состояние – результат броска кости

self.done = False # флаг окончания игры

self.reward = 0 # награда за текущий шаг

def step(self, action):

# Выполняем действие – бросаем кость

self.state = np.random.randint(1, 7)

# Вычисляем награду

if action == self.state:

self.reward = 10 # выигрыш, если действие совпало с результатом броска

else:

self.reward = 0 # нет выигрыша

# Устанавливаем флаг окончания игры (игра заканчивается после одного хода)

self.done =

1 ... 4 5 6 7 8 9 10 11 12 ... 25
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


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

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.


Партнер

Новые отзывы

  1. Гость ghonius858 Гость ghonius85830 май 11:49 Помощь с водительскими правами. Любая категория прав. Даже лишённым. Права вносятся в базу ГИБДД. Доставка прав. Смотрите всю... Опасная красота - Джей Ти Джессинжер
  2. Гость ghonius858 Гость ghonius85829 май 18:30 Помощь с водительскими правами. Любая категория прав. Даже лишённым. Права вносятся в базу ГИБДД. Доставка прав. Смотрите всю... Звереныш - Рита Хоффман
  3. Гость ghonius858 Гость ghonius85828 май 16:15 Помощь с водительскими правами. Любая категория прав. Даже лишённым. Права вносятся в базу ГИБДД. Доставка прав. Смотрите всю... Башенка из несбывшихся желаний - Ди Со Пон
Все комметарии
Новое в блоге