机器学习入门 之 《集体智慧编程》 聚类(clustering)

本文介绍了两种非监督学习算法——层次聚类与K均值算法。层次聚类通过不断合并距离最近的数据集形成一棵树,而K均值算法则通过迭代更新聚类中心将数据划分为K个独立的群组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是两个非监督算法:
聚类还是很有用滴:比如,对数据进行聚类,发现套套和啤酒靠得非常近,说明啤酒和套套放在一起可能会增加收入。比如哥们买一瓶酒的时候顺便买个套套,酒后很可能那个啥了。。。

聚类首先要解决的是解决两个集合的的相似程度的问题。
我们使用一个distance(v1,v2)来表示两个集合的相似程度,distance越小越相似
v1,v2是两个向量,如果有非数值的参数可以想办法将它量化

算法一:hierarchicalclustering(层次聚类):
            1>遍历整所有的vector,计算两两vector的距离,找出距离最小的两个集合 将其合并
             合并后的vector为 (v1+v2)/2
           
            重复 1>直到只有一个集合位置
            
机器学习入门 <wbr>聚类(clustering)


其实 回想一下huffman算法,跟这个最过程异曲同工。每一次都找最小的两个合并。
整个算法的时间复杂度是:n3次方.有点恐怖

算法二 k-mean算法:
层次分类并没有把集合真正地分开,而是建立了一棵二叉树,而且每次遍历整个集合计算两两vector之间的距离,时间复杂度是O(n平方)。
k-mean算法可以将集合分为k个独立的 集合。

k-mean的算法如下
1、随机生成k个vector.和其对应的集合set
2、遍历整个集合,找到与k个vector中每一个vector距离最近的那个vector,将其加入到对应的set中
     注意这个过程的时间复杂度是O(k*n ),而层次聚类是"n平方",效果好得多
3、计算每一个set的平均值(也就是每一个set的中心)(v1+v2+...+vm)/m
4、 重复1到3直到算法结束
整个算法的时间复杂度是k*n平法,比层次分类好得多。
机器学习入门 <wbr>聚类(clustering)

k-mean这个词的理解,k代表将这个集合分为k个独立的集合。mean是平均的意思,就是计算k个集合中每一个集合的中心的意思,如图


    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值