python中K-means算法基础知识点
能够学习和掌握编程,最好的学习方式,就是去掌握基本的使用技巧,再多的概念意义,总归都是为了使用服务的,K-means算法又叫K-均值算法,是非监督学习中的聚类算法。主要有三个元素,其中N是元素个数,x表示元素,c(j)表示第j簇的质心,下面就使用方式给大家简单介绍实例使用。
K-Means算法进行聚类分析
km=KMeans(n_clusters=3) km.fit(X) centers=km.cluster_centers_ print(centers)
三个簇的中心点坐标为:
[[5.0063.428]
[6.812765963.07446809]
[5.773584912.69245283]]
比较一下K-Means聚类结果和实际样本之间的差别:
predicted_labels=km.labels_ fig,axes=plt.subplots(1,2,figsize=(16,8)) axes[0].scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Set1, edgecolor='k',s=150) axes[1].scatter(X[:,0],X[:,1],c=predicted_labels,cmap=plt.cm.Set1, edgecolor='k',s=150) axes[0].set_xlabel('Sepallength',fontsize=16) axes[0].set_ylabel('Sepalwidth',fontsize=16) axes[1].set_xlabel('Sepallength',fontsize=16) axes[1].set_ylabel('Sepalwidth',fontsize=16) axes[0].tick_params(direction='in',length=10,width=5,colors='k',labelsize=20) axes[1].tick_params(direction='in',length=10,width=5,colors='k',labelsize=20) axes[0].set_title('Actual',fontsize=18) axes[1].set_title('Predicted',fontsize=18)
k-means算法实例扩展内容:
#-*-coding:utf-8-*- """Excercise9.4""" importnumpyasnp importpandasaspd importmatplotlib.pyplotasplt importsys importrandom data=pd.read_csv(filepath_or_buffer='../dataset/watermelon4.0.csv',sep=',')[["密度","含糖率"]].values ##########################################K-means####################################### k=int(sys.argv[1]) #Randomlychooseksamplesfromdataasmeanvectors mean_vectors=random.sample(data,k) defdist(p1,p2): returnnp.sqrt(sum((p1-p2)*(p1-p2))) whileTrue: printmean_vectors clusters=map((lambdax:[x]),mean_vectors) forsampleindata: distances=map((lambdam:dist(sample,m)),mean_vectors) min_index=distances.index(min(distances)) clusters[min_index].append(sample) new_mean_vectors=[] forc,vinzip(clusters,mean_vectors): new_mean_vector=sum(c)/len(c) #Ifthedifferencebetweenthenewmeanvectorandtheoldmeanvectorislessthan0.0001 #thendonotupdatathemeanvector ifall(np.divide((new_mean_vector-v),v)到此这篇关于python中K-means算法基础知识点的文章就介绍到这了,更多相关python中K-means算法是什么内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!