用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?
来源:互联网 发布:宁波淘宝托管 编辑:程序博客网 时间:2024/06/11 02:43
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!
- 用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?
- 分类&回归算法-随机森林
- [Java][机器学习]用决策树分类算法对Iris花数据集进行处理
- iris数据集进行KNN分类
- Mahout随机森林算法--分类无标签数据
- 使用scikit-learn的随机森林对西瓜进行分类
- 用深度神经网络对Iris数据集进行分类的程序--tensorflow
- 数据挖掘-oneR算法-Iris数据集分析-使用oneR算法进行分类预测(五)
- 【Kaggle】用随机森林分类算法解决Biologial Response问题
- CART分类树算法与随机森林
- 数据挖掘笔记-分类-决策树-随机森林
- 随机森林分类器
- 随机森林分类器的实现
- 运用BP反向传播算法进行Iris鸢尾花分类
- c#神经网络,实现对Iris数据集进行分类
- 使用spark mllib 随机森林算法对文本进行多分类
- 使用不同的SVM对iris数据集进行分类并绘出结果
- python 实现 knn分类算法 (Iris 数据集)
- Google/LintCode:M-图是否是树
- python调用第三方邮件接口
- json语法格式
- 最新MySQL5.7.19解压版安装指南
- SE03可以unlock CR
- 用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?
- html屏蔽右键、禁止复制与禁止查看源代码
- Ehcache使用教程
- javascript读写txt 并根据换行符空格符比较数组
- 远程通信的几种选择
- 设计模式之原型模式
- STM8S系列文章
- springboot(四)自定义banner和日志
- 从sublime text过度到VScode