使用kmeans聚类时,计算量往往都比较大,当有新的数据要添加到现有类别时,怎么做呢
使用sklearn简单做法就是训练时把模型保存,增量时加载模型,用predict预测就好了。
前提条件是新数据和训练时的属性数量要一致,比如在训练时使用的分词idf,把所有分词idf的词典保存下来,对于新的增量数据,调用该词典。
#聚类类别数
k_num = 50
mydatas = [] #加载数据,每一条数据的分词用空格隔开,类似:[['aa bb'],['cc dd'],['ee ff']]
idf_ret_file = "idf_ret.pkl"
if os.path.exists(idf_ret_file):
input = open(idf_ret_file, 'rb')
idf_ret = pickle.load(input)
input.close()
else:
idf_ret = cal_idf(mydatas) #计算tf-idf
output = open(idf_ret_file, 'wb')
#训练时把所有分词及idf值写入文件保存,以便在增量时调用
pickle.dump(idf_ret, output)
output.close()
#计算数据的tf-idf值
tfidf_ret = cal_tfidf(mydatas,idf_ret)
doc_rows = len(mydatas) #数据条数
word_rows = len(idf_ret) #分词个数
#把每条数据每个分词的词频 转换成 矩阵[数据条数,分词数]
X = np.zeros([doc_rows,word_rows])
for i in range(doc_rows):
j = 0
for k,v in idf_ret.items():
X[i][j] = tfidf_ret[i][k]
j=j+1
X = np.array(X)
#模型文件
cl_file = "kmeans.pkl"
if os.path.exists(cl_file):
input = open(cl_file, 'rb')
cl = pickle.load(input)
input.close()
else:
cl = KMeans(n_clusters=k_num, init='k-means++', random_state=30, n_init=1,verbose=False)
cl.fit(X)
#把模型文件保存,增量时使用
output = open(cl_file, 'wb')
pickle.dump(cl, output)
output.close()
#聚类结果
result = cl.predict(X)
#print(cl.cluster_centers_)
print(result)
exit()
分享到:
相关推荐
【机器学习项目实战】Python实现聚类(Kmeans)分析客户分组 资料说明:包括数据集+源代码+Word文档说明。 资料内容包括: 1)问题定义; 2)数据收集; 3)数预处理; 4)探索性数据分析; 5)聚类模型; 6)聚类可视化...
Kmeans聚类,kmeans聚类算法,matlab源码.rar
数据科学基础大作业学期源码集合(含ython爬虫、聚类、kmeans、情感分析、pyecharts可视化等).zip 【项目资源介绍】 实现的技术包括利用python爬虫,爬取关键词搜索的微博正文,特定微博下的评论;预处理微博文本;...
基于聚类(Kmeans)算法实现客户价值分析系统(电信运营商)包含(custinfo.csv,custcall.csv以及输出的数据集result,还有图片)
基于Python3.7实现整图分割功能,调用sklearn模块的KMeans聚类算法。包括源程序、测试图片和结果图片。
基于Matlab模糊聚类Kmeans算法,有兴趣和需要的可以研究
Kmeans聚类,kmeans聚类算法,matlab源码
人工智能-项目实践-图像聚类-Kmeans方法对图像色彩进行聚类
改进的kmeans算法,聚类效果良好,比三种算法要好,matlab
聚类文件kmeans.py
06聚类算法Kmeans资料与代码.7z
经典聚类程序 kmeans的C++源码。下载者请注意是c++的源码,想下c源码的,我另有发布
K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的...使用场景:通用聚类方法,用于均匀的簇大小,簇的数量不多的情况。
经典机器学习算法练手聚类数据集,csv格式,存储了3000余组坐标点数据(x,y),可用于sklearn或普通python实现KMeans聚类,回归等任务 【使用说明】 建议python使用pandas进行数据导入,再使用python进行数据分析...
JAVA+聚类+KMeans图书推荐系统 使用了聚类算法来给图书推荐进行排名,适合毕业设计进行参考~代码是基于javaweb的应用
[聚类算法KMeans]案例:客户分群
数据挖掘(KDD)聚类算法KMEANS的MATLAB实现
资料说明:包括数据+代码+文档+代码讲解。 1.项目背景 2.数据获取 3.数据预处理 4.探索性数据分析 5.特征工程 6.构建聚类模型 7.结论与展望
基于聚类(Kmeans)算法实现的客户价值分析系统(包含custcall,custinfo,result,tariff,国内某航空公司会员数据)等数据信息