文档章节

Model selection and tuning 模型选择与调优

hblt-j
 hblt-j
发布于 2017/08/29 16:50
字数 707
阅读 93
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

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。

本文转载自:http://www.cnblogs.com/wwxbi/p/6210199.html

hblt-j
粉丝 24
博文 218
码字总数 73000
作品 0
海淀
架构师
私信 提问
加载中

评论(0)

《为大量出现的KPI流快速部署异常检测模型》 笔记

以下我为这篇《Rapid Deployment of Anomaly Detection Models for Large Number of Emerging KPI Streams》做的阅读笔记 - Jeanva Abstract Rapid deployment of anomaly detection models......

osc_fjbsh38p
2019/04/29
7
0
ISLR第六章Linear Model Selection and Regularization

本章主要介绍几种可替代普通最小二乘拟合的其他一些方法。 Why might we want to use another fitting procedure instead of least squares? better prediction accuracy(预测精度) and be...

osc_cym01vn6
2018/03/06
1
0
SparkML模型选择(超参数调整)与调优

Spark ML模型选择与调优 本文主要讲解如何使用Spark MLlib的工具去调优ML算法和Pipelines。内置的交叉验证和其他工具允许用户优化算法和管道中的超参数。 模型选择(又称为超参数调整) ML中...

rlnlo2pnefx9c
2017/12/10
0
0
【博客存档】机器学习模型评估

前言 当数据好了之后,你所需的只是调下开源包,然后一个模型就出来了,但是,好与不好?谁来界定? 这篇文章,主要针对模型的评估,系统介绍下各种不同的模型的各种评测标准,主要参考Alice...

想飞的石头
2017/11/03
0
0
Towards Alzheimer’s Disease Classification through Transfer Learning

论文链接:https://arxiv.org/abs/1711.11117 code:https://github.com/marciahon29/RyersonMRP 摘要: 利用迁移学习解决医学图像数据较少的问题。VGG和inception是通过预训练的权重进行初始...

Amy_mm
03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

仝卓学籍造假微博道歉,用Python抓取微博的评论看看群众都说什么

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,...

osc_7ludm6s2
13分钟前
9
0
华为开发常用的2款利器,推荐给大家

Fiddler Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、...

osc_08xf0119
14分钟前
5
0
流行的JAVA IDE,你都用过哪几款?

  每一个Java程序员应该都有一款自己了解的IDE,挑选一款好的JavaIDE能够大大进步程序员的编程功率,一起有些IDE还供给的各式各样的辅助性功用,让人感觉写起代码能够飞起来!   本文收集...

osc_mbqdr3w5
16分钟前
17
0
Discourse 如何修改一个主题的分类

在你需要修改的主题后面,单击编辑的图标。 然后在弹出的界面中,进行选择你希望的分类,然后单击确定保存就可以了。 然后你就可以看到已经添加到新的主题分类中。 如果你还需要对名字或者分...

honeymoose
16分钟前
14
0
写优质Java代码的4个技巧

  咱们平时的编程使命不外乎便是将相同的技能套件应用到不同的项目中去,关于大多数状况来说,这些技能都是能够满意方针的。然而,有的项目或许需求用到一些特别的技能,因而工程师们得深入...

osc_1m04dwae
16分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部