前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python环境】无监督学习之KMeans

【Python环境】无监督学习之KMeans

作者头像
陆勤_数据人网
发布2018-02-27 11:46:18
7060
发布2018-02-27 11:46:18
举报

k-means,这一种算法是非监督模型,也就是说一开始我可以不用告诉它类别,让他们自己去分类。那么怎么去分类呢?假设我们首先将它映射到欧式空间

可以直观的看出来,图中把点分成了三类。然后我们做出这样一种假设:每一类有一个中心点,这一类的绝大部分点到中心点的距离应该是小于到其他类中心点的距离的。之所以说绝大部分是因为考虑到点的特例,我们不能因为单独的几个点而否定之前的大部分。基于这一个思想我们可以确定所要优化的目标函数,我们假设分类N个数据到K个类别,则有:

其中的rnk意味着归类到k时为1,剩下为0.剩下的具体如何优化这里不在详细说了。

代码实现如下:

  1. from sklearn import datasets
  2. iris = datasets.load_iris()
  3. X = iris.data
  4. y = iris.target
  5. clf=KMeans(n_clusters=3)
  6. model=clf.fit(X)
  7. predicted=model.predict(X)

这里调用了聚类器KMeans,因为已知三类我们让其中的clusters中心点为3就可以了。KMeans的参数除了聚类个数之外还有max_iter,n_init,init,precompute_distances等。具体的参数含义解释如下网址:

http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档