数据挖掘中做(n-floder)交叉验证时,如果根据测试结果选取相应的模型?( 二 )
当k=n的时候,也就是n-fold交叉验证。这个时候就是上面所说的留一验证(Leave-one-out Cross Validation)。
综上所述,交叉验证(Cross Validation)的好处是可以从有限的数据中获得尽可能多的有效信息,从而可以从多个角度去学习样本,避免陷入局部的极值。在这个过程中,无论是训练样本还是测试样本都得到了尽可能多的学习。
一般模型的选择过程:在了解了交叉验证的方法之后,可以来介绍一般模型的选择过程。通过采用不同的输入训练样本,来决定机器学习算法中包含的各个参数值,称作模型选择。下面伪代码表示了模型选择的一般流程。在这个算法中,最重要的就是第三个步骤中的误差评价。 (1)准备候选的q个模型:M1,...,Mq。 (2)对每个模型M1,...,Mq求解它的学习结果。 (3)对每个学习结果的误差e1,...,eq进行计算。这里可以使用上面所说的k-fold交叉验证方法。 (4)选择误差e1,...,eq最小的模型作为最终的模型。
.........................................................
欢迎大家关注我的公众账号
(长按图片,识别二维码即可添加关注)
■网友
作者:许铁-巡洋舰科技链接:专栏来源:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。无论哪种机器学习的算法,检测的最终标准都是其能否泛化。而检测的方式,则是交叉验证。交叉验证是一个需要讲究细节的环节,在交叉验证,你用的是正确的版本吗?中,我区别了两种不同的交叉验证的方式。而今天想谈谈交叉验证设计上的其他问题。
假设你在做一个推荐萌猫照片的app,其核心的算法是用深度神经网络从一堆照片中找出下面这样的图
【数据挖掘中做(n-floder)交叉验证时,如果根据测试结果选取相应的模型?】
在这种情况下,你该怎样划分你的测试集和训练集了。对于不熟悉的读者,训练集是提供给机器用来寻找规律的数据,而训练集则是用来检测算法给出的预测是否靠谱的。如果你划分不当,就会出现这样的问题。假设你的训练数据全部是美国的猫,而测试数据则全部是印度的猫。那么也许你训练出的神经网络会只适合检测米国的喵,而忽略其他国家的喵。从这个案例中我们总结道,在做交叉验证的时候,测试集和验证集的分布要是一致的。
然而分布一致是一个很模糊的标准。具体来说,你考虑了猫的品种,避免了训练集中只有花狸猫,而测试集之中只是波斯猫,也就是说你保证了不同品种的猫在训练集和测试集中分布一致。然而,你可能会没有意识到下图这样的小猫,从而导致了你训练的分类器不适合标出小猫,可偏偏小猫是最萌的最受喜欢的。之所以会出现这样的问题,是因为你不是猫的专家,无法设想出对猫进行分类的多种维度。这也是说为什么机器学习项目的成功必须要结合应用领域的专业知识的原因。机器学习算法的研发,永远需要人的参与,只有懂得相关领域的人,才能找出对数据进行分类的不同维度,从而避免出现训练集与测试集分布不一的情况。
然而,了解一项应用的使用场景对设计交叉验证的细节也是很关键的。还举之前的那个应用。假设你的分类器给用户推送了一张小黄图,但是小黄图上有一只喵。这样的推送是你不需要的。这时你应该做什么?你首先要意识到会出现这样的情况,然后要么调整你训练出的神经网络,让其能识别出小黄图,从而避免这样尴尬的情况。要么就需要再训练一个识别小黄图的神经网络,过滤最初用来作为筛选的数据。这个例子用来说明在设计交叉验证时,你需要对需求有足够的了解,对可能出现的情况有全面的设想,如果你在设计交叉验证的时候,在测试集和训练集中都引入了小黄图+猫的类型,那么这样的问题就能在测试时识别出来。
推荐阅读
- 数据挖掘、数据分析方向国内有哪些大学比较强
- 出生仅41天的宝宝,在熟睡中做了核酸检测
- 请问招商证劵固定收益实习和金仕达软件系统,数据挖掘正式工作怎样选择
- 现在已经大三了,C++和java,php都会一点,但了解不深,想读研,想学习数据挖掘,机器学习,现在该咋咋做?
- 英国计算机专业数据挖掘方向博士就业情况
- 数据挖掘方面的研究生,课题不知道选啥。。求求求求助
- 作为实验室方向为机器学习,数据挖掘和中医相结合方向的研究生有啥合适的方向推荐吗?
- 你在《王者荣耀》中做过/遇到过哪些“蠢事”
- offer选择:坐标上海,IT企业数据挖掘VS金融国企中后台运营
- 大数据的必须需要人工来进行挖掘吗为啥。 大数据挖掘过程中的无效数据是怎么样处理的
