# -*- coding:utf-8*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import pandas as pd
from sklearn.externals import joblib
from sklearn.preprocessing import scale
from sklearn.cluster import KMeans
#####################读取数据################
data = pd.read_csv('C:/pic/data/wholesale customers data.csv', sep=',', dtype=str, na_filter=False)
# print data
##################数据标准化##################
feature=scale(data)
####################设定聚类个数##################
k=9
#调用kmeans类
clf = KMeans(n_clusters=k)
s = clf.fit(feature)
print s
#打印中心点
print clf.cluster_centers_
#每个样本所属的簇
print clf.labels_
#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
print clf.inertia_
#保存模型
joblib.dump(clf , 'c:/km.pkl')
#载入保存的模型
clf2 = joblib.load('c:/km.pkl')
#进行预测
print clf2.predict(feature)
##############写出数据###################
data['label']=clf.labels_
print data
pd.DataFrame.to_excel(data,'c:/kmeans_result.xlsx',index=False)
print(u'聚类完成')
【python sklearn】kmeans算法运用
最新推荐文章于 2024-08-11 16:00:02 发布