快捷搜索:  汽车  科技

多因子机器学习预测模型python(Kmeans算法Spark实现)

多因子机器学习预测模型python(Kmeans算法Spark实现)这里主要涉及到4个类:spark具体实现:每一行都代表是一个样例的特征值,并且用#号切分,这里省去了特征提取和处理的过程。算法原理(这个大家肯定都清楚,一笔带过):算法接收参数K值,将实现输入的n个数据对象划分为k个聚类,以便使得所获得的聚类满足,同一聚类中的对象相似度较高,而不同聚类中的相似度较小。

简介:在接触机器学习的时候,大部分都是从Kmeans算法开始,kmeans方法可以说是一种比较简单的聚类算法,单机版的kmeans算法网上有很基于python,java,matlab,R等的实现。运用于海量数据的有mahout,spark mllib等分布式实现,直接调用就可以使用,本文主要介绍基于spark的kmeans算法的实现,由于资源有限,该程序是在本地运行的,数据源使用的是本地文件。

数据集介绍(格式如下):

5.0#3.6#1.4#0.2#1

5.1#3.7#1.5#0.4#1

每一行都代表是一个样例的特征值,并且用#号切分,这里省去了特征提取和处理的过程。

算法原理(这个大家肯定都清楚,一笔带过):

算法接收参数K值,将实现输入的n个数据对象划分为k个聚类,以便使得所获得的聚类满足,同一聚类中的对象相似度较高,而不同聚类中的相似度较小。

spark具体实现:

这里主要涉及到4个类:

KmeansProperty:每个对象的特征值;

Cluster:每个节点所属的簇ID及其特征值;

RandomClusterGenerator:读取训练集数据,并且生成原始的簇中心点;

Cluster详解:

多因子机器学习预测模型python(Kmeans算法Spark实现)(1)

主要包含3个属性:簇ID,该簇的节点个数,该节点的特征值;其它的构造方法及toString容易理解。

RandomClusterGenerator详解:

多因子机器学习预测模型python(Kmeans算法Spark实现)(2)

包含4个属性:k指簇的个数,data是训练样本集,clusters是生成的k个簇中心节点,kmeansCLuster是ArrayList类型的簇中心节点。

getInitialCluster是生成k个中心点。

多因子机器学习预测模型python(Kmeans算法Spark实现)(3)

Kmeans详解:

多因子机器学习预测模型python(Kmeans算法Spark实现)(4)

主要涉及到两个方法:

获得节点到7个簇中心的最小距离(这里默认的是分成7类)在map操作中使用

多因子机器学习预测模型python(Kmeans算法Spark实现)(5)

计算连个节点之间的距离

多因子机器学习预测模型python(Kmeans算法Spark实现)(6)

该方法主要是在reduceByKey的时候调用,生成新的节点

多因子机器学习预测模型python(Kmeans算法Spark实现)(7)

获得每个节点所属的簇中心的ID

多因子机器学习预测模型python(Kmeans算法Spark实现)(8)

下面的方法是计算最新的簇中心点,并转化成ArrayList类型

多因子机器学习预测模型python(Kmeans算法Spark实现)(9)

上述过程是一次迭代,要是根据迭代的个数只需要加循环就可以。

猜您喜欢: