在Colorado北部,有一片森林,森林里中有多种类型的植被,有人已经将其大概总结出来了7种:

1 - Spruce/Fir
2 - Lodgepole Pine
3 - Ponderosa Pine
4 - Cottonwood/Willow
5 - Aspen
6 - Douglas-fir
7 - Krummholz

如果将它们的特征划,可以划分成12种,在这12中类型中,其中两种特征又可以划分成4和40中,这样可以任务这些植被有54中类型。现在有人已经根据样本的特性手动划分了植被类型一部分,现在需要自动识别未划分的植被类型

(1)本文将基于随机森林算法在spark的集群上做模型系数的优化,来识别不同的植被类型。

1.1 数据的预处理:

在其给出的数据中存在54中数据类型如图:

很显然,这些特征属于类别型特征,其中比较特殊是wilderness_area和soil_type,它们是one-hot类型,有4和40个特征值。

val data=sparkSession.sparkContext.textFile(fileName).map(_.split(",").map(_.toDouble)).map(lin=>{LabeledPoint(line.last-1,Vectors.dense(line.init))})
val Array(trainData,cvData,testData)=data.randomSplit(Array(0.8,0.1,0.1));

这里我们用80%做训练集,10%做校验,10%做测试。

(2)建立模型和调节参数;

随机森林的模型val model=RandomForest.trainClassifier(trainData,numclass,map,numTrees,"auto",inpurity,maxDepth,maxBin)

说明:trainData:训练数据,LabeledPoint类型

numclass:分类数量

map(k->v) 类别k是v的特征

numTrees:建立数的棵树

auto:评估特征选择策略

inpuity:采用哪种信息纯度计算方式

maxDepth:数的最大深度

maxbin:数的最大同数

好了,下面来确定参数,参数确定当然是根据预测的准确度、召回率、错误率、、、

这里spark中有一个类MulticlassMetrics来帮我们计算,这样我们就不用自己写了。这个类有个方法accuracy就等到了准确率,调节参数过程如下:

 val evaluations=for(numtrees<- 1 to 20;depth<- 20 to 30;bins<-2- to 300;inpuity<-Array("gini","entropy"))yield {val model=RandomForest.trainClassifier(trainData,7,Map(10->4,11->40),numtrees,"auto",inpuity,depth,bins);val trainAccuracy=desionTree3.getForestMetra(model,cvData).accuracy;(inpuity,depth,bins,trainAccuracy)
}evaluations.sortBy(_._4).reverse.take(10).foreach(println)}

最后的结果:

显然当深度取30,桶数取40时,准确率最高达到93.9%

Random Forests预测森林植被类型相关推荐

  1. 随机森林(Random Forests)介绍

    1.决策树(Decision Tree) 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别.常见的决策树算法有C4.5.ID3和CART.I ...

  2. 随机森林 (Random Forests) 简单介绍与应用

    1 集成方法(Ensemble methods) 1.1 什么是集成方法 简单来说,集成方法 就是组合多个模型,以获得更好效果. 1.2 两种集成方法 平均法(averaging methods):也 ...

  3. 装袋法(bagging)和随机森林(random forests)的区别

    bagging method 和random forests 一般都是应用在决策树中.这篇文章只讨论bagging method 和random forests 的区别. bagging method ...

  4. 【随机森林】random forests 简单介绍

    Random Forest,顾名思义 Random 就是随机抽取: Forest 就是说这里不止一棵树,而由 一群决策树组成的一片森林 ,连起来就是用随机抽取的方法训练出一群决策树来完成分类任务. R ...

  5. R语言使用randomForest包构建随机森林模型(Random forests)、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB

    R语言使用randomForest包中的randomForest函数构建随机森林模型(Random forests).使用importance函数查看特征重要度.使用table函数计算混淆矩阵评估分类 ...

  6. 统计学中的Bootstrap方法(Bootstrap抽样)用来训练bagging算法,如果随机森林Random Forests

    统计学中的Bootstrap方法(Bootstrap抽样)用来训练bagging算法,如果随机森林Random Forests 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学 ...

  7. Random Forests C++实现:细节,使用与实验

    Random Forests C++实现:细节,使用与实验 1. 随机森林简介 1.1 算法简介 1.2 随机特性 2. C++实现和使用 2.1 动机 2.2 细节 2.2.1 算法的参数(Hype ...

  8. random forest(随机森林)

    转载自:http://lincccc.com/?p=47 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型,天然可以作为快 ...

  9. Random Forests原理

    Random Forests原理 分类: 机器学习2012-07-27 15:09 1085人阅读 评论(3) 收藏 举报 randomreference算法测试 转载自:http://lincccc ...

  10. 机器学习:Logistic回归处理用气象数据预测森林火灾的数据挖掘方法

    文章目录 线性模型与回归 最小二乘与参数求解 1.一维数据: 2.多维数据 最大似然估计 Logistic回归 基本介绍 基于Logistic回归和Sigmoid函数的分类 基于最优化方法的最佳回归系 ...

最新文章

  1. YII2源码阅读:autoload_real.php 22~23行
  2. Redis源码剖析(一)服务器与客户端交互流程
  3. 原创 子网划分的讲解 例题加思路
  4. React Native开发总结(二)
  5. python的一些函数
  6. 一分钟了解阿里云产品:弹性伸缩五大热点技术问题分析
  7. 西子奥的斯服务器显示dlf,OTIS奥的斯XIOTIS西子奥的斯E311故障查询和故障代码(全).pdf...
  8. Android数据库SQLite的读写
  9. sqlserver如何修改服务器排序规则,修改sqlserver2008数据库的排序规则 (转)
  10. 爬取新浪滚动新闻--每个详情页标题以及内容
  11. 鹅厂、狗厂、猫厂、熊厂、鸟厂、粮厂
  12. android sqlite 示例,Android SQLite数据库操作示例
  13. python3爬取头条比基尼图片
  14. 机器学习之朴素贝叶斯算法详解
  15. 一位参加过IT培训班的学员经历和建议。
  16. Day134-136.尚品汇:平台属性接口、SPU、跨域问题、配置持久化、MinIO 分布式文件存储系统
  17. html 5抽奖特效,利用HTML5实现Canvas大转盘抽奖特效
  18. 【2018-11-30】中证500指数的估值详情
  19. Win10系统C盘之前还有20G空间突然红了爆满如何解决
  20. c语言输入三个商品的价格,若有一个大于100元或者总价大于200元,全部商品打9折,并完成付款和找零

热门文章

  1. 【181129】VC++ 屏幕截取(窗口截图、选区截图)、屏幕拾色器、放大镜源代码
  2. 37-基于51单片机智能温控风扇设计
  3. Linux lpadmin 命令 增加usb打印机
  4. Serializer序列化器----反序列化使用
  5. 搭建邮件服务器 linux,Linux局域网邮件服务器搭建
  6. Android好用的音乐,安卓手机音乐播放器哪个好用?十大最好音乐播放器介绍
  7. python uci_UCI机器学习数据库的Python API介绍
  8. UG二次开发入门--一个简单的示例
  9. R语言 正态性检验 Q-Q plot shapiro test
  10. rf扫描枪_RF枪是什么,怎么用,在哪用?