当然可以!以下是一个用 Python 实现聚类算法的示例代码,同时也会进行一些简单的分析:

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score

# 读取数据
data = pd.read_csv('data.csv')

# 数据预处理
# ...

# 聚类分析
# 选择k值
k_list = range(2, 11)
scores = []
for k in k_list:
    model = KMeans(n_clusters=k)
    labels = model.fit_predict(data)
    score = silhouette_score(data, labels)
    scores.append(score)

best_k = k_list[np.argmax(scores)]
print('最佳k值:', best_k)

# 运用最佳k值进行聚类
model = KMeans(n_clusters=best_k)
labels = model.fit_predict(data)

# 输出聚类结果
for i in range(best_k):
    print('Cluster %d: %d samples' % (i, np.sum(labels == i)))

该代码首先读取含有数据的 CSV 文件,然后进行数据预处理,例如缺失值处理、离散变量编码、特征缩放等等。然后,通过选择不同的 k 值,使用轮廓系数评估每个 k 值的聚类效果,并找到最佳的 k 值。最后,使用最佳的 k 值进行聚类,并输出每个簇中的样本数量。

该代码使用了 KMeans 算法作为聚类算法。KMeans 是一种基于距离的聚类算法,它将数据划分为 k 个簇,并将每个样本分配到最近的簇中。KMeans 算法需要指定聚类数 k,因此需要使用轮廓系数等指标来评估不同 k 值的聚类效果,最终选择最佳的 k 值。同时,KMeans 算法对于数据量较大的数据集也有很好的可扩展性。


原文地址: https://www.cveoy.top/t/topic/nWE9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录