一:交叉验证(crossvalidation)(附实验的三种方法)方法简单介绍  



(1) 定义:交叉验证(Cross-validation)主要用于建模应用中,比如PCR(Principal Component Regression) 、PLS(Partial
least squares regression)回归建模中。在给定的建模样本中。拿出大部分样本进行建模型。留小部分样本用刚建立的模型进行预报。并求这小部分样本的预报误差。记录它们的平方加和。这个过程一直进行,直到全部的样本都被预报了一次并且仅被预报一次。

把每一个样本的预报误差平方加和。称为PRESS(predicted Error Sum of Squares)。【来自wikipidia:https://zh.wikipedia.org/wiki/%E4%BA%A4%E5%8F%89%E9%A9%97%E8%AD%89#K-fold_cross-validation】

(2)分类:

交叉验证一般分为三类:double-fold CV即常常所说的2折交叉。10-fold交叉和LOO(leaveone
out)CV即留一法交叉。

2折:将原始数据集DataSet均分为两份:一份作为训练集,即trainingSet。一份作为測试集,即testingSet,然后用训练集去做训练,用測试集去验证;之后再将训练集作为測试集,測试集作为训练集进行迭代一次,将两次所得的误差经行处理作为整体数据的预測误差。

(注:这里强调一点,就是数据集一定要均分为两份,理由是:作为训练集。数据量一定要不小于測试集,所以在迭代的过程中,使得数据不出现错误情况。必须均分。)

K-折:(在这里说下K-折)是在将数据集分成K个子集,K个子集中得一个作为測试集,而其余的K-1个数据集作为训练集,最后对K个数据子集的错误计算均值,K次迭代验证是对监督学习算法的结果进行评估的方法。数据集的划分一般採用等均分或者随机划分。

LOO:这种方法是K折的一种特列。就是把数据分为N份,事实上每一份都是一个样本,这样迭代N次,计算最后的误差来作为预測误差。

(3) 度量方法:在以上的交叉验证的最后都提到了数据误差,由于没验证一次都有一次数据误差,经行K折验证,进行迭代K次,这次误差的处理也有不同的方法,也就是度量方法,比方你取平均值ME,或者方差等都是能够的。还有平均标准误差等,都能够作为最后的验证误差。

(4) 以下是3-fold cross validation

二、实验数据处理方法

(1) 验证:是指把数据分为两部分。一部分作为训练集。即trainingSet,一部分为測试集,即testingSet,一般前者占数据的70%,后者占数据的30%,用训练集来进行训练,用測试集来进行检验,将最后的误差作为整体预測误差。

(注:在这里大家要注意与2折交叉验证的差别。主要在数据集的分和检验上)

(2)交叉验证:在这里就不叙述了。就是利用交叉验证的结果即作为參数选择的标准,同一时候也作为模型择优的标准。

(3) 实验三【来自机器学习导论】这里首先将数据分为两部分,一部分作为训练集,一部分作为測试集,用训练集做交叉验证选择最优參数,用測试集来选择最优模型。

当然最后的误差也是有測试集来作为预測误差。

以上是三种实验处理的方法,纠正哪种方法好,都不能做什么评论。仅仅能说适合你的胃口,或者你专业的胃口,或者看客的胃口……

大数据处理之道(实验方法<二>)的更多相关文章

  1. 大数据处理之道(十分钟学会Python)

    一:python 简介 (1)Python的由来 Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个 ...

  2. 大数据处理之道 (htmlparser获取数据<一>)

    一:简单介绍 (1)HTML Parser是一个用于解析Html的Java的库.可採用线性或嵌套两种方式.主要用于网页的转换或提取,他有一些特性:过滤器filter,遍历器visitors,通常的标签 ...

  3. SQL*Loader实验笔记【二】

      所有SQL*Loader实验笔记 实验案例总结(1-7):     SQL*Loader实验笔记[一] 实验案例总结(8-13):   SQL*Loader实验笔记[二] 实验案例总结(14-19 ...

  4. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  5. 《Spark大数据处理:技术、应用与性能优化 》

    基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...

  6. 大数据处理框架之Strom: Storm----helloword

    大数据处理框架之Strom: Storm----helloword Storm按照设计好的拓扑流程运转,所以写代码之前要先设计好拓扑图.这里写一个简单的拓扑: 第一步:创建一个拓扑类含有main方法的 ...

  7. 大数据处理框架之Strom:认识storm

    Storm是分布式实时计算系统,用于数据的实时分析.持续计算,分布式RPC等. (备注:5种常见的大数据处理框架:· 仅批处理框架:Apache Hadoop:· 仅流处理框架:Apache Stor ...

  8. 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...

  9. Spark与Flink大数据处理引擎对比分析!

    大数据技术正飞速地发展着,催生出一代又一代快速便捷的大数据处理引擎,无论是Hadoop.Storm,还是后来的Spark.Flink.然而,毕竟没有哪一个框架可以完全支持所有的应用场景,也就说明不可能 ...

随机推荐

  1. Python--10、线程

    线程 每个进程里都有一个控制线程,进程不是一个执行单位,线程是执行单位,进程是资源单位(资源隔离).进程下可以开多个线程,多线程共享进程内的资源.创建线程的速度比创建进程的速度快,因为创建线程不需要再 ...

  2. 3分钟看懂flex布局

    首先要有个容器,并设置display:flex;display:-webkit-flex;该容器有以下六个属性: 1 2 3 4 5 6 7 8 9 10 11 12 flex-direction ( ...

  3. Sql Server 优化 SQL 查询:如何写出高性能SQL语句

    1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...

  4. html——ico

    下载: 网址+/favicon.ico 引用: 1.<link href="favicon.ico" rel="icon" /> 2.<lin ...

  5. eclipse安装python开发pydev插件

    eclipse安装python开发pydev插件 下载eclipse的python开发插件pydev http://pan.baidu.com/s/1qXHt8pI 下载python.exe,并安装. ...

  6. java攻城狮之路--复习JDBC(PrepareStatement)

    PreparedStatement: 1.可以通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象 2.PreparedS ...

  7. 【sqli-labs】 less44 POST -Error based -String -Stacked Blind(POST型基于盲注的堆叠字符型注入)

    盲注漏洞,登陆失败和注入失败显示的同一个页面 可以用sleep函数通过延时判断是否闭合引号成功 这个方法有一点不好的地方在于,并不能去控制延时,延时的时间取决于users表中的数据数量和sleep函数 ...

  8. Tomcat8 连接池

    1.所有的tomcat项目共用一个连接池配置 1.1 修改conf->context.xml文件,在Context节点下配置 <Resource name="jdbc/myDat ...

  9. jboss启动问题

    今天一大早客户找我,说他们那边的jboss启动成功了,但是却访问不了. 本以为不是什么事,估计又是客户不会搞,把哪里搞挂了,直接远程把客户的jboss的log.data.tmp等文件给清理了,然后重启 ...

  10. EF-调用sql进行操作

    一丶执行 class Program { static void Main(string[] args) { var db = new TestDBEntities(); string sql = @ ...