python怎么用sklearn包进行聚类

如题所述

# -*- coding: utf-8 -*-
from sklearn.cluster import KMeans
from sklearn.externals import joblib
import numpy

final = open('c:/test/final.dat' , 'r')

data = [line.strip().split('\t') for line in final]
feature = [[float(x) for x in row[3:]] for row in data]

#调用kmeans类
clf = KMeans(n_clusters=9)
s = clf.fit(feature)
print s

#9个中心
print clf.cluster_centers_

#每个样本所属的簇
print clf.labels_

#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
print clf.inertia_

#进行预测
print clf.predict(feature)

#保存模型
joblib.dump(clf , 'c:/km.pkl')

#载入保存的模型
clf = joblib.load('c:/km.pkl')

'''
#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
for i in range(5,30,1):
    clf = KMeans(n_clusters=i)
    s = clf.fit(feature)
    print i , clf.inertia_
'''
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-14
、K均值聚类 K-Means算法思想简单,效果却很好,是最有名的聚类算法。聚类算法的步骤如下: 1:初始化K个样本作为初始聚类中心; 2:计算每个样本点到K个中心的距离,选择最近的中心作为其分类,直到所有样本点分类完毕; 3:分别计算K个类中所...
相似回答