肘部法则–Elbow Method
我们知道k-means是以最小化样本与质点平方误差作为目标函数,将每个簇的质点与簇内样本点的平方距离误差和称为畸变程度(distortions),那么,对于一个簇,它的畸变程度越低,代表簇内成员越紧密,畸变程度越高,代表簇内结构越松散。 畸变程度会随着类别的增加而降低,但对于有一定区分度的数据,在达到某个临界点时畸变程度会得到极大改善,之后缓慢下降,这个临界点就可以考虑为聚类性能较好的点。
importpandas as pdfrom sklearn.cluster importKMeansimportmatplotlib.pyplot as plt
df_features= pd.read_csv(r'11111111.csv',encoding='gbk') #读入数据#print(df_features)
'利用SSE选择k'SSE= [] #存放每次结果的误差平方和
for k in range(1,9):
estimator= KMeans(n_clusters=k) #构造聚类器
estimator.fit(df_features[['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22