SparkMllib-KMeans算法和决策树算法

一.KMeans算法

1.KMeans算法原理


-->无监督学习.输入的只有特征值,目标值prediction是 模型训练得出来的
k-means其实包含两层内容:K表示初始中心点个数(计划聚类数),
means求中心点到其他数据点距离的平均值,
K自己设置(2,3,4,5,6,7,8),K必须大于数据本身的分散度

具体步骤如下:

1. 随机设置K个特征空间内的点作为初始的聚类中心
2. 对于其他每个点计算到K个中心的距离,
未知的点 选择最近的一个聚类中心点作为标记类别
3. 接着对着标记的聚类中心之后,
重新计算出每个聚类的新中心点(平均值)
4. 如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第二步过程

伪代码:
    输入:k, data[n];

    1.选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];
        初始点的选择,利用的是Kmeans++的算法(在Kmeas算法的基础上).在让这两个点尽可能远,这样影响会降低.
    2.对于data[0]….data[n], 分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;
        怎么标记i,比如用字典保存,key为i,value为类别.
    3.对于所有标记为i点,重新计算c[i]={ 所有标记为i的data[j]之和}/标记为i的个数;
        
    4.重复(2)(3),直到所有c[i]值的变化小于给定阈值。

2.Kmeans算法特点


优点:速度快,简单

  &n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值