Мини-пакетная кластеризация K-средних в машинном обучении
Алгоритм мини-пакетной кластеризации K-средних является версией стандартного алгоритма K-средних в машинном обучении. Он использует небольшие случайные пакеты данных фиксированного размера для хранения в памяти, затем на каждой итерации собирается случайная выборка данных, которая используется для обновления кластеров. Если вы никогда не использовали мини-пакетный алгоритм K-средних в машинном обучении, эта статья для вас. В этой статье я познакомлю вас с алгоритмом мини-пакетной кластеризации K-средних и его реализацией с использованием Python.
Мини-пакетная кластеризация K-средних
Алгоритм мини-пакетной кластеризации K-средних является версией алгоритма K-средних, который можно использовать вместо алгоритма K-средних при кластеризации огромных наборов данных. Иногда он работает лучше, чем стандартный алгоритм K-средних при работе с огромными наборами данных, потому что он не выполняет итерацию по всему набору данных. Он создает случайные пакеты данных для хранения в памяти, затем случайный пакет данных собирается на каждой итерации для обновления кластеров.
Основное преимущество использования мини-пакетного алгоритма K-средних состоит в том, что он снижает вычислительные затраты на поиск кластера. Вы можете выбрать алгоритм K-средних, но при работе с огромным набором данных лучше использовать мини-пакетный подход. Если вы хотите понять разницу между этими двумя алгоритмами, вам следует прочитать эту исследовательскую статью.
Мини-пакетная кластеризация K-средних с использованием Python
Надеемся, вы теперь поняли, что такое мини-пакетная кластеризация K-средних в машинном обучении и чем она отличается от стандартного алгоритма K-средних. Чтобы реализовать этот алгоритм с помощью Python, вы можете использовать библиотеку Scikit-learn на Python. Итак, ниже показано, как вы можете реализовать мини-пакетный алгоритм k-средних с помощью языка программирования Python:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set() from sklearn.cluster import MiniBatchKMeans data = pd.read_csv("https://biconsult.ru/img/datascience-ml-ai/Mini-batch-K-means-Clustering-in-Machine-Learning/housing.csv") data = data.loc[:, ["median_income", "latitude", "longitude"]] kmeans = MiniBatchKMeans(n_clusters=6, random_state=0, batch_size=6) data["Cluster"] = kmeans.fit_predict(data) data["Cluster"] = data["Cluster"].astype("int") print(data.head()) plt.style.use('seaborn-whitegrid') plt.rc("figure", autolayout=True) plt.rc("axes", labelweight='bold', labelsize='large', titleweight='bold', titlesize=14, titlepad=10) sns.relplot(x='longitude', y='latitude', hue='Cluster', data=data, height=6) plt.show()
Результат:
median_income latitude longitude Cluster
0 8.3252 37.88 -122.23 1
1 8.3014 37.86 -122.22 1
2 7.2574 37.85 -122.24 1
3 5.6431 37.85 -122.25 1
4 3.8462 37.85 -122.25 1
Резюме
Вот как вы можете использовать мини-пакетную версию алгоритма K-средних на больших наборах данных. Эту версию алгоритма K-средних можно использовать вместо обычного алгоритма K-средних при кластеризации огромных наборов данных. Она создает случайные пакеты данных для хранения в памяти, затем случайный пакет данных собирается на каждой итерации для обновления кластеров. Надеюсь, вам понравилась эта статья о мини-пакетном алгоритме K-средних в машинном обучении и его реализации с использованием Python.