Python机器学习基础---课件-第4章-无监督学习.pptxVIP

Python机器学习基础---课件-第4章-无监督学习.pptx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第4章无监督学习;4.1K均值凝聚聚类;;;;;通过下列代码观察Kmeans算法的聚点,并观察决策边界

fromsklearn.datasetsimportmake_blobs

importmatplotlib.pyplotasplt

blobs=make_blobs(random_state=7,centers=3)

X_blobs=blobs[0]

plt.scatter(X_blobs[:,0],X_blobs[:,1],c=r,edgecolors=k)

fromsklearn.clusterimportKMeans

importnumpyasnp

kmeans=KMeans(n_clusters=3)

kmeans.fit(X_blobs)

X_min,X_max=X_blobs[:,0].min()-0.5,X_blobs[:,0].max()+0.5

y_min,y_max=X_blobs[:,1].min()-0.5,X_blobs[:,1].max()+0.5

xx,yy=np.meshgrid(np.arange(X_min,X_max,.02),np.arange(y_min,y_max,.02))

Z=kmeans.predict(np.c_[xx.ravel(),yy.ravel()])

Z=Z.reshape(xx.shape)

plt.figure(1)

plt.clf()

plt.imshow(Z,interpolation=nearest,extent=(xx.min(),xx.max(),yy.min(),yy.max()),cmap=plt.cm.summer,aspect=auto,origin=lower)

plt.plot(X_blobs[:,0],X_blobs[:,1],r.,markersize=5)

centroids=kmeans.cluster_centers_

plt.scatter(centroids[:,0],centroids[:,1],marker=x,s=150,linewidths=3,color=b,zorder=10)

plt.xlim(X_min,X_max)

plt.ylim(y_min,y_max)

plt.xticks(())

plt.yticks(())

plt.show();看过此算法后,我们很容易与KNN算法搞混,两者都有一个相似的过程,就是都需要找到某一个点最近的点,二者都采用了最近邻的思想。其实两者的差别还是挺大的,Kmeans算法是无监督学习的聚类算法,而KNN算法是监督学习的分类算法。KNN算法基本不需要训练,只要从测试集里面根据距离计算公式找到K个点,用这K个点表示测试机集的类别即可,而Kmeans算法有明显的训练过程,需要反复迭代找到K个类别的最佳质心来决定数据的类别。

;优点:

1.原理简单、实现容易,是解决聚类问题的一种经典算法,保持可伸缩性和高效率,当数据集是密集的,它的效果较好。

2.算法的可解释性较强,只要需要调参的的参数只有分类数K。

缺点

1.必须事先给出K值,而且对初值敏感,对于不同的初始值,可能会导致不同结果。

2.对躁声和孤立点数据敏感。

3.采用迭代方法,得到的结果只是局部最优。;4.2凝聚聚类;;下面是对数据集采用三种链接准则得到的结果。程序如下:

fromsklearn.datasets.samples_generatorimportmake_blobs

fromsklearn.clusterimportAgglomerativeClustering

importnumpyasnp

importmatplotlib.pyplotasplt

fromitertoolsimportcycle##python自带的迭代器模块

##产生随机数据的中心

centers=[[1,1],[-1,-1],[1,-1]]

##产生的数据个数

X,lables_true=make_blobs(n_samples=2000,centers=centers,cluster_std=0.5,random_state=22)

ac=AgglomerativeClustering(linkage=ward,n_clusters=4)

##训练数据

ac.fit(X)

##每个数据的分类

lables=ac.labels_

##绘图

plt.figure(1)

plt.clf()

colors=cycle(rgcy)

fork,colinzip(range(4),colors):

您可能关注的文档

文档评论(0)

movie + 关注
实名认证
文档贡献者

喜欢分享的作者

1亿VIP精品文档

相关文档