文档章节

Model selection and tuning 模型选择与调优

hblt-j
 hblt-j
发布于 2017/08/29 16:50
字数 707
阅读 20
收藏 0
点赞 0
评论 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
粉丝 14
博文 92
码字总数 11113
作品 0
海淀
架构师
SparkML模型选择(超参数调整)与调优

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

rlnlo2pnefx9c ⋅ 2017/12/10 ⋅ 0

【博客存档】机器学习模型评估

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

想飞的石头 ⋅ 2017/11/03 ⋅ 0

DBA要失业了?看ML如何自动优化数据库

译者介绍 杨志洪,DBAplus社群联合发起人,新炬网络首席布道师。Oracle ACE、OCM、《Oracle核心技术》译者。数据管理专家,拥有十余年电信、银行、保险等大型行业核心系统Oracle数据库运维支...

杨志洪 译 ⋅ 2017/06/04 ⋅ 0

机器学习实战(四)模型验证和选择

模型选择和评估主要是在这个模块里面.这里只会列出概述和常见函数的用法,更加详细的可以到sklearn.modelselection: Model Selection 来看 一.概览 Splitter Classes modelselection.KFold([n...

xierhacker ⋅ 2017/04/23 ⋅ 0

如何用 SQL Tuning Advisor (STA) 优化SQL语句

在oracle10g之前,想要优化一个sql语句是比较麻烦,但是在oracle10g这个版本推出的SQL Tuning Advisor这个工具,能大大减少sql调优的工作量,不过要想使用SQL Tuning Advisor,一定要保证你的...

markGao ⋅ 2014/03/05 ⋅ 0

ActiveMQ性能与调优相关链接

ActiveMQ性能与调优相关链接 amq自己带了一个性能test:http://activemq.apache.org/activemq-performance-module-users-manual.html 使用jmeter压测的介绍:http://activemq.apache.org/jm......

stefanzhlg ⋅ 2014/12/24 ⋅ 0

菜鸟学Linux 第111篇笔记 Memory

菜鸟学Linux 第111篇笔记 Memory 建议查看原文(因为复制版的格式可能有问题) 原文出自 Winthcloud 链接: 内容总览 内存子系统组件 Memory提升 Viewing system calls Strategies for usin...

Winthcloud ⋅ 2017/05/31 ⋅ 0

机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱

转载自:http://blog.csdn.net/heyongluoyao8/article/details/49408319# 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱 前言   本文主要解释一些关于机器学习模型...

eucommiaulmoides ⋅ 04/22 ⋅ 0

DBM_SQLTUNE使用简介

DBMS_SQLTUNE的使用方法 所需权限 grant advisor to user; grant selectcatalogrole to user; --通过OEM管理必不可少 grant execute on dbms_sqltune to user; 获取绑定变量的方法 此时分两种...

dbstats ⋅ 2017/04/24 ⋅ 0

JRockit垃圾回收优化参数

网上的调优文章很多,个人认为调整参数优化项目这个事情和内部代码有很大关系,常驻大内存和小内存更多线程的配置一定是不一样的,我记录的只是公司项目的调优:) 1.选择一个适合自己的垃圾...

神勇小白鼠 ⋅ 2013/01/07 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 24分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 24分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 26分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 36分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 50分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部