K-means — это универсальная модель, которая может служить как исследовательским, так и объяснительным целям.

Исследование данных — важный шаг в построении эффективной модели. Данные рассказывают историю. В отличие от хорошей книги, чтобы понять историю данных, нам нужно пройти очень важный шаг: исследование данных.

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

K-means — это универсальная модель, которая может служить как исследовательским, так и объяснительным целям.

Определение относительного уровня преданности болельщиков разных футбольных команд является сложным и субъективным вопросом. Это потребует изучения различных факторов, таких как производительность команды, личный опыт и культурное происхождение, что затрудняет получение окончательного вывода. Таким образом, маловероятно, что окончательный ответ может быть достигнут путем простой аргументации или дебатов. Уровень преданности болельщиков — многогранный вопрос, который невозможно оценить количественно.

В качестве иллюстрации рассмотрим гипотетический сценарий из мира футбола, где мы генерируем синтетические данные для стадиона с 30 трибунами — 30 тысяч мест. Среди этих стендов некоторые предназначены для фанатов Ultra, которые, как правило, принадлежат к определенным возрастным группам и демонстрируют свою поддержку шарфами и рубашками клубных цветов. Эти фанаты обычно увлечены стоянием на протяжении всей игры.

import random

records = []
for i in range(30000):
    stand = random.randint(1, 30)
    if stand ==5 or  stand == 6:
        shirt_color = 'red'
        age = random.randint(18, 40)
        with_scarf = 1
        is_membership = 1
        percentage_of_home_games = random.randint(50, 100) / 100
    elif (stand ==11 or stand == 12 ):
        shirt_color = 'yellow'
        age = random.randint(18, 40)
        with_scarf = 1
        is_membership = 1
        percentage_of_home_games = random.randint(50, 100) / 100
    else:
        shirt_color='netural'
        age = random.randint(8, 70)
        with_scarf =random.randint(0, 1)
        is_membership = random.randint(0, 1)
        percentage_of_home_games = random.randint(1, 100) / 100

    record = {
        "stand": stand,
        "shirt_color": shirt_color,
        "age": age,
        "with_scarf": with_scarf,
        "is_membership": is_membership,
        "percentage_of_home_games": percentage_of_home_games
        
        
    }
    records.append(record)

import pandas as pd
df = pd.DataFrame (records)
df.sample(5)

Результатом описанного выше процесса является DataFrame с 30 000 записей, каждая из которых представляет футбольного болельщика на стадионе:

Давайте использовать — получить макеты для «shirt_color»: функция в пандах, которая использовалась для преобразования категориальных переменных в числовые переменные.

df = pd.get_dummies(df, columns=['shirt_color'])

Результат:

После этапа подготовки данных можно запустить и построить модель K-средних и получить разделение на три группы: ультрафанаты группы 1, ультрафанаты группы 2 и остальные фанаты каждой группы.

from sklearn.cluster import KMeans
import numpy as np
# Scale the numerical features
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
records_scaled = scaler.fit_transform(df)
# Train the k-means model
kmeans = KMeans(n_clusters=3)
kmeans.fit(records_scaled)

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

# cluster labels for the records
labels = kmeans.predict(records_scaled)
# Create new category filed based on Model resualts
for i, row in df.iterrows():
    df.at[i, 'is_ultra_fans_'] = labels[i]

Новый набор данных был дополнен новым полем, дающим возможность генерировать ценную информацию.

Теперь вы можете плыть с инсайтами. Например, какая группа болельщиков более предана делу — команды 1 или команды 2?

print (df[df['is_ultra_fans_']==2]['percentage_of_home_games'].mean())
0.7475933400605449 
print(df[df['is_ultra_fans_']==1]['percentage_of_home_games'].mean())
0.5085765329644998

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

Вывод:

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

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