Spark2 Model selection and tuning 模型选择与调优
Model selection模型选择
ML中的一个重要任务是模型选择,或使用数据为给定任务找到最佳的模型或参数。 这也称为调优。 可以对诸如Logistic回归的单独Estimators进行调整,或者对包括多个算法,特征和其他步骤的整个Pipeline进行调整。 用户可以一次调整整个Pipeline,而不必单独调整Pipeline中的每个元素。
MLlib支持使用CrossValidator和TrainValidationSplit等工具进行模型选择。这些工具需要以下items:
Estimator:要调整的algorithm or Pipeline
Set of ParamMaps:可以选择的参数,有时称为“parameter grid”
Evaluator:衡量拟合模型对测试数据支持的有多好
在高级别,这些模型选择工具的工作如下:
将输入数据分成单独的训练和测试数据集。
对于每个(训练,测试)对,遍历ParamMap的集合:
对于每个ParamMap,它们使用这些参数拟合Estimator,获得拟合的Model,并使用Evaluator评估Model的性能。
选择由性能最佳的参数集合生成的模型。
Evaluator可以是用于回归问题的RegressionEvaluator,用于二进制数据的BinaryClassificationEvaluator,用于多类问题的MulticlassClassificationEvaluator。每个evaluator中的“setMetricName方法”是一个用于选择最佳ParamMap的默认度量。
为了帮助构造parameter grid,用户可以使用ParamGridBuilder实用程序。
Cross-Validation交叉验证
CrossValidator开始于将数据集分割为一组folds,用作单独的训练和测试数据集。 例如,k = 3 folds,CrossValidator将生成3个“数据集对(训练,测试)”,其中每个数据集使用2/3的数据进行训练和1/3的测试。 为了评估特定的ParamMap,通过在3个不同“数据集对”上拟合Estimator,CrossValidator为3个Models计算平均评估度量。
在识别最好的ParamMap后,CrossValidator最终使用最好的ParamMap和整个数据集重新匹配Estimator。
注意,在parameters grid上的CrossValidator是非常耗费资源。 然而,它也是用于选择参数的好的公认的方法,比启发式手动调优在统计上更好。
Train-Validation Split
除了CrossValidator,Spark还提供TrainValidationSplit用于超参数调优。 TrainValidationSplit只评估“每个参数的组合”一次,而不是在CrossValidator的情况下k次。 因此,TrainValidationSplit耗费的资源比CrossValidator少一些,但是当训练数据集不够大时,不会产生可靠的结果。
与CrossValidator不同,TrainValidationSplit创建一个“数据集对(训练,测试)”。 它使用trainRatio参数将数据集拆分为这两个部分。 例如,trainRatio = 0.75
,TrainValidationSplit将生成训练和测试数据集对,其中75%的数据用于训练,25%用于验证。
像CrossValidator,TrainValidationSplit最终使用最好的ParamMap和整个dataset拟合Estimator。
Spark2 Model selection and tuning 模型选择与调优的更多相关文章
- Spark 模型选择和调参
Spark - ML Tuning 官方文档:https://spark.apache.org/docs/2.2.0/ml-tuning.html 这一章节主要讲述如何通过使用MLlib的工具来调试模 ...
- JVM内存模型与性能调优
堆内存(Heap) 堆是由Java虚拟机(JVM,下文提到的JVM特指Sun hotspot JVM)用来存放Java类.对象和静态成员的内存空间,Java程序中创建的所有对象都在堆中分配空间,堆只用 ...
- XGBoost模型的参数调优
XGBoost算法在实际运行的过程中,可以通过以下要点进行参数调优: (1)添加正则项: 在模型参数中添加正则项,或加大正则项的惩罚力度,即通过调整加权参数,从而避免模型出现过拟合的情况. (2)控制 ...
- RandomForest 随机森林算法与模型参数的调优
公号:码农充电站pro 主页:https://codeshellme.github.io 本篇文章来介绍随机森林(RandomForest)算法. 1,集成算法之 bagging 算法 在前边的文章& ...
- 【Spark调优】内存模型与参数调优
[Spark内存模型] Spark在一个executor中的内存分为3块:storage内存.execution内存.other内存. 1. storage内存:存储broadcast,cache,p ...
- SQL Tuning / SQL 性能 优化 调优
Some key concents regarding SQL optimization predicate selectivity (column unique ratio) / cardinali ...
- JVM内存模型及参数调优
堆.栈.方法区概念区别 1.堆 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.根据垃圾回收机制的不同, Java堆有可能拥有不同的结构,最为常见的就是 ...
- 转:机器学习 规则化和模型选择(Regularization and model selection)
规则化和模型选择(Regularization and model selection) 转:http://www.cnblogs.com/jerrylead/archive/2011/03/27/1 ...
- Scikit-learn:模型选择Model selection
http://blog.csdn.net/pipisorry/article/details/52250983 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator,不 ...
随机推荐
- cocos3.x - lua vs2013环境搭建及项目创建示例
第一步:装vs2013vs 2013下载(没试过) 安装颜色设深色(不伤眼睛),只装c++够用了 第二步:装cocos环境 (如果不打包只为了解引擎之类的话,只装cocos就可以了(就可以了,jdk, ...
- Java高编译低运行错误(ConcurrentHashMap.keySet)
Java高编译低运行错误(ConcurrentHashMap.keySet) 调了一天: https://www.jianshu.com/p/f4996b1ccf2f
- 使用vue.js路由踩到的一个坑Unknown custom element
在配合require.js使用vue路由的时候,遇到了路由组件报错: “vue.js:597 [Vue warn]: Unknown custom element: <router-link&g ...
- pod update报错(Cocoapods: Failed to connect to GitHub to update the CocoaPods/Specs specs repo)报错解决方案
好长一段时间没动pods,今天偶然需要更新一个库,于是执行了下pod update,然后惊悚的出现了这个报错: [!] Failed to connect to GitHub to update th ...
- STL--迭代器(iterator)使用详解
迭代器的分类 在STL中,原生指针也是一种迭代器,除了原生指针以外,迭代器被分为五类: Input Iterator 此迭代器不允许修改所指的对象,即是只读的.支持==.!=.++.*.->等操 ...
- SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法
最近项目组很多人问我,从前台页面传到后台controller控制层或者WebApi 时如何取值和运算操作. 今天就都大家一个在框架内一个取值技巧 前台JS调用代码: 1.下面是选中一行数据后右键点击时 ...
- springboot 中打印 sql 语句
在配置文件中 application.yml 配置如下其一即可 方式一: logging: level: com.xxx.com.dao.mapper: DEBUG //包路径为mapper文件包路径 ...
- Xbox One手柄 + Xbox Wireless Adapter PC无线适配器驱动安装、配对全流程
以下步骤在Windows 7系统中操作.XBox One手柄+无线适配器并非仅只能在Windows 10中使用. 一点感想:微软的XBoxOne手柄实在是好东西,但产品使用说明与文档实在太垃圾,翻遍官 ...
- zookeeper频繁异常问题分析
Reference: https://blog.csdn.net/xjping0794/article/details/77784171 1.1 操作系统信息1.1.1 ...
- masscan
masscan是一个快速的端口扫描工具 大概说一下它的使用方法,既有原创也有翻译 欢迎补充 扫描10.x.x.x的网络:masscan 10.0.0.0/8 -p80 程序将自动探测网络的接口和适配器 ...