from sklearn.cluster import KMeans from numpy import * import matplotlib.pyplot as plt # 解决中文乱码 plt.rcParams['font.family'] = 'SimHei' # 指定黑体(系统自带) plt.rcParams['axes.unicode_minus'] = False # 解决负号乱码 if __name__=="__main__": #创建数据集 data=array([[2,10],[2,5],[8,4],[5,8],[7,5],[6,4],[1,2],[4,9]]) sse=[] for i in range(1,9): mid=KMeans(n_clusters=i,init='random',n_init=10,max_iter=200) mid.fit(data) sse.append(mid.inertia_) plt.plot(range(1,9),sse,marker="o") plt.title("调优") plt.xlabel("聚类个数k");plt.ylabel("误差SSE") plt.show()
#直接用sklearn包进行kmeans聚类也可以
#column_stack是什么我也不知道,反正就是后面得是(())2个括号
横纵坐标分别求均值就是质心坐标
H(D|A) = -(5/15H(D1) + 5/15H(D2) + 5/15H(D3)) 这里前面的负号应该去掉。熵的负号也只是为了变为正数而出现(因为log导致存在负数)
有的,后期会上线~
是的,抱歉疏漏
目前免费课程暂时不提供代码,抱歉~
课程中代码行数不是很多,建议跟着课程手敲一遍,对所学知识会有更深刻的体会和理解~