32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import pandas as pd
|
||
from sklearn.cluster import AgglomerativeClustering
|
||
from sklearn.preprocessing import StandardScaler
|
||
import matplotlib.pyplot as plt
|
||
|
||
# Чтение данных из датасета
|
||
data = pd.read_csv("Clean Data_pakwheels.csv")
|
||
# Уменьшение размера данных для оптимизации работы программы
|
||
data = data.sample(frac=.01)
|
||
|
||
|
||
# Для кластеризации выбираются признаки "Стоимость" и "Пробег"
|
||
features = ['Price','Mileage']
|
||
cluster_data = data[features]
|
||
|
||
X = data[features]
|
||
|
||
# Стандартизация данных
|
||
standartSc = StandardScaler()
|
||
X_scaled = standartSc.fit_transform(X)
|
||
|
||
# Кластеризация с разделением на 4 кластера
|
||
cluster = AgglomerativeClustering(n_clusters=4, linkage='ward')
|
||
data['cluster'] = cluster.fit_predict(X_scaled)
|
||
|
||
# Построение графика
|
||
plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=data['cluster'])
|
||
plt.xlabel('Стоимость')
|
||
plt.ylabel('Пробег')
|
||
plt.title('Кластеризация')
|
||
plt.savefig(f"linkage.png")
|
||
plt.show() |