华为云网站备案流程,wordpress建站什么意思,青岛网站推广系统,一个app下载免费下载安装算法简介
K-means算法是很典型的基于距离的聚类算法#xff0c;采用距离作为相似性的评价指标#xff0c;即认为两个对象的距离越近#xff0c;其相似度就越大。该算法认为簇是由距离靠近的对象组成的#xff0c;因此把得到紧凑且独立的簇作为最终目标。 算法过程如下采用距离作为相似性的评价指标即认为两个对象的距离越近其相似度就越大。该算法认为簇是由距离靠近的对象组成的因此把得到紧凑且独立的簇作为最终目标。 算法过程如下
1从N个文档随机选取K个文档作为中心点
2对剩余的每个文档测量其到每个中心点的距离并把它归到最近的质心的类
3重新计算已经得到的各个类的中心点
4迭代23步直至新的质心与原质心相等或小于指定阈值算法结束。 算法优缺点
优点
对处理大数据集该算法保持可伸缩性和高效性算法快速、简单易于理解;
缺点
在 K-means 算法中 K 是事先给定的这个 K 值的选定是非常难以估计的具体应用中只能靠经验选取对噪声和孤立点数据敏感导致均值偏离严重当数据量非常大时算法的时间开销是非常大的初始聚类中心的选择对聚类结果有较大的影响一旦初始值选择的不好可能无法得到有效的聚类结果。代码实现
第一步读取文件简单查看数据
import pandas as pd
import numpy as np
from pandas import DataFrame,Series
from sklearn.cluster import KMeans
from sklearn.cluster import Birch#读取文件
datafile uE:\\pythondata\\julei.xlsx#文件所在位置u为防止路径中有中文名称此处没有可以省略
outfile uE:\\pythondata\\julei_out.xlsx#设置输出文件的位置
data pd.read_excel(datafile)#datafile是excel文件所以用read_excel,如果是csv文件则用read_csv
d DataFrame(data)
d.head() assistsheighttimeagepoints00.088820136.02280.588510.139919839.32300.829120.074719838.80260.497430.098319140.71300.577240.127619638.40280.5703列名助攻身高比赛时间年龄得分根据这几项进行聚类。 第二步聚类
#聚类
mod KMeans(n_clusters3, n_jobs 4, max_iter 500)#聚成3类数据,并发数为4最大循环次数为500
mod.fit_predict(d)#y_pred表示聚类的结果#聚成3类数据统计每个聚类下的数据量并且求出他们的中心
r1 pd.Series(mod.labels_).value_counts()
r2 pd.DataFrame(mod.cluster_centers_)
r pd.concat([r2, r1], axis 1)
r.columns list(d.columns) [u类别数目]
print(r)#给每一条数据标注上被分为哪一类
r pd.concat([d, pd.Series(mod.labels_, index d.index)], axis 1)
r.columns list(d.columns) [u聚类类别]
print(r.head())
r.to_excel(outfile)#如果需要保存到本地就写上这一列 第三步可视化简单的标注上分为哪一类怎么能满足当然要看看可视化效果毕竟注意一目了然的判断聚类的效果
#可视化过程
from sklearn.manifold import TSNEts TSNE()
ts.fit_transform(r)
ts pd.DataFrame(ts.embedding_, index r.index)import matplotlib.pyplot as plta ts[r[u聚类类别] 0]
plt.plot(a[0], a[1], r.)
a ts[r[u聚类类别] 1]
plt.plot(a[0], a[1], go)
a ts[r[u聚类类别] 2]
plt.plot(a[0], a[1], b*)
plt.show() 因为K-means 算法过于大众化而且代码其实比较简单的所以备注比较少如果需要备注或者有任何疑问欢迎留言。