文档章节

用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?

openfea
 openfea
发布于 2017/08/10 11:18
字数 1146
阅读 1.5K
收藏 8

精选30+云产品,助力企业轻松上云!>>>

MLlib是Spark的机器学习(ML)库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。

MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。

MLllib目前分为两个代码包:spark.mllib 包含基于RDD的原始算法API。

spark.ml ,提供了基于DataFrames高层次的API,可以用来构建机器学习管道,FEA-spk技术的机器学习就是基于spark.ml 包。

spark.ml 包,是基于DataFrame的,未来将成为Spark机器学习的主要API。它可以在分布式集群上进行大规模的机器学习模型训练,并且可以对数据进行可视化。

一、随机森林分类算法的介绍

随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入时,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对应分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

使用Spark MLlib随机森林算法存在不足,需要改进!

具体来讲,使用Spark MLlib进行模型的训练,需要进行大量的数据转化,列聚合为向量等。非常麻烦,并且不能做数据的可视化。

而FEA-spk技术可以很好的解决这些问题。对模型进行训练只需要一句命令就行了,并且可以对结果数据进行可视化展示。

二、Iris 数据分类训练案例

下面列举一个用随机森林分类算法进行Iris 数据分类的例子。

1. 数据准备

原始的数据以及相应的说明可以到https://pan.baidu.com/s/1c2d0hpA下载。 我在这基础之上,增加了header信息。 

这里将下载好的数据放到hdfs上面进行读取。

2. Iris 数据进行训练的具体步骤

(1)要使用FEA-spk技术,首先要创建一个spk的连接,所有的操作都是以它为上下文进行的。在fea界面运行以下命令

(2)加载数据,数据在hdfs上面,数据的格式为csv文件格式,目录为/data/iris_data.txt

(3)使用ML_si方法将字符型的label变成index       

(4)将特征列的类型转化为double类型,因为spark.ml只支持double类型,使用 ML_double方法

(5)使用随机森林模型进行训练

在训练RandomForest模型的时候,我们需要设置好几个参数:

· maxBins

最大装箱数,为了近似统计变量,比如变量有100个值,我只分成10段去做统计,默认值是32;

· numTrees

森林里有几棵树,默认值是20;

· minInstancesPerNode

每个节点最少实例,默认值是1;

· minInfoGain

最小信息增益,默认值是0.0;

· maxDepth

最大树深度,默认值是5;

· maxMemoryInMB

最大内存MB单位,这个值越大,一次处理的节点划分就越多,默认值是256;

· cacheNodeIds

是否缓存节点id,缓存可以加速深层树的训练,默认值是False;

· checkpointInterval

检查点间隔,就是多少次迭代固化一次,默认值是10;

· impurity

随机森林有三种方式,entropy,gini,variance,回归肯定就是variance,默认值是gini;

· seed

采样种子,种子不变,采样结果不变,默认值None;

· featureSubsetStrategy

auto: 默认参数。让算法自己决定,每颗树使用几条数据。

使用的参数如下图所示

(6)对训练好的模型进行打分

可以看到准确率达到了97%

(7)将训练好的模型保存到hdfs上面,以供下次使用

这个非常实用,对于模型比较大的情况下,利用HDFS的分布式结构就可以提高加载性能。

(8)将hdfs上面保存的模型加载进来

(9)对加载后的模型做预测

其中prediction列就是预测的结果

以上就是使用FEA-spk技术进行机器学习的步骤,它非常适合数据分析处理大规模的数据,简单、强大、可视化,不懂Java\Python同样可以玩转Spark!

openfea

openfea

粉丝 25
博文 91
码字总数 101905
作品 1
杭州
其他
私信 提问
加载中
此博客有 3 条评论,请先登录后再查看。
数据挖掘——基于sklearn包的分类算法小结

   目录 一、分类算法简介 二、KNN算法 三、贝叶斯分类算法 四、决策树算法 五、随机森林算法 六、SVM算法 一、分类算法简介 1、概念   1.1 监督学习(Supervised Learning)   从给定...

osc_8g11urw7
2018/10/21
12
0
随机森林算法详解(当下最好的算法之一)

随机森林使用背景 1.1 随机森林定义 随机森林是一种比较新的机器学习模型。经典的机器学习模型是神经网络,有半个多世纪的历史了。神经网络预测精确,但是计算量很大。上世纪八十年代Breiman...

Ana1ysis
2016/12/15
8.8K
0
web安全之机器学习入门——3.2 决策树与随机森林

目录 简介 决策树简单用法 决策树检测P0P3爆破 决策树检测FTP爆破 随机森林检测FTP爆破 简介 决策树和随机森林算法是最常见的分类算法; 决策树,判断的逻辑很多时候和人的思维非常接近。 随...

osc_0lrxxjv2
2019/04/15
5
0
机器学习九大算法---随机森林

机器学习九大算法---随机森林 转载自:http://www.zilhua.com/629.html 1. 随机森林使用背景 1.1 随机森林定义 随机森林是一种比较新的机器学习模型。经典的机器学习模型是神经网络,有半个多...

osc_dst9rn7q
2018/08/06
3
0
随机森林分类算法

随机森林(Random Forest,简称RF)是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树。假设现在针对的是分类问题,每棵决策树都是一个分类器,那么N棵树会有N个分类结果。...

osc_8vi0tf3q
2019/10/27
2
0

没有更多内容

加载失败,请刷新页面

加载更多

使用getApplication()作为上下文的对话框抛出“无法添加窗口-令牌null不适用于应用程序”

问题: My Activity is trying to create an AlertDialog which requires a Context as a parameter. 我的活动试图创建一个AlertContext,它需要一个Context作为参数。 This works as expect......

法国红酒甜
40分钟前
11
0
java常用开发支持类库

UUID类 UUID是一个生成无重复字符串的程序类(JDK1.5之后出现),这个程序类的主要功能是根据时间戳实现一个自动的无重复的字符串定义(无重复指的是出现重复的概率极低)。 一般在获取UUID时...

哼着我的小调调
50分钟前
15
0
亚马逊测评买家号多开_可以解决这个问题嘛?_微信公众号: VMlogin中文版

对于很多亚马逊卖家来说,做亚马逊测评是并不可少的,都在为了自己的店铺能够获得更多的销售,着重培养自己产品的各项属性,以求获得一个更好的权重排名从而获得更多的曝光,但是在旺季期间亚...

竹节猫-ASOer
56分钟前
10
0
Java基础系列——数组之java.util.Arrays使用以及可能出现的异常(12)

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。常用方法如下所示: boolean equals(int[] a,int[] b) 判断两个数组是否相等。 String toStrin...

卢佳鹏
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部