📄 19.txt
字号:
发信人: ashun (阿顺), 信区: DataMining
标 题: 数据挖掘入门(十三)
发信站: 南京大学小百合站 (Mon Aug 20 10:27:13 2001)
5.建立模型。
对建立模型来说要记住的最重要的事是它是一个反复的过程。你需要仔细考察不同的模型
以判断哪个模型对你的商业问题最有用。你在寻找好的模型的过程中学到的的东西会启发
你修改你的数据,甚至改变最初对问题的定义。
一旦决定了预测的类型之后(分类还是回归),就需要为这个预测选择模型的类型。可能
是一棵决策树、神经网络、甚至传统的数学统计。选择什么样的模型决定了你需对数据做
哪些预处理工作。如神经网络需要做数据转换,有些数据挖掘工具可能对输入数据的格式
有特定的限制,等。一旦所有的数据准备好之后,就可以开始训练你的模型了。
为了保证得到的模型具有较好的精确度和健壮性,需要一个定义完善的训练—验证协议。
有时也称此协议为带指导的学习。他的主要思想就是先用一部分数据建立模型,然后再用
剩下的数据来测试和验证这个得到的模型。有时还有第三个数据集,称为验证集,因为测
试集可能受模型的特性的影响,这时需要一个独立的数据集来验证模型的准确性。
训练和测试数据挖掘模型需要把数据至少分成两个部分:一个用于模型训练,另一个用于
模型测试。如果不使用不同的训练和测试集,那么模型的准确度就很难使人信服。用训练
集把模型建立出来之后,就可以先在测试集数据上先试验一把,此模型在测试集上的预测
准确度就是一个很好的指导数字,它说明如果将来与训练集和测试集类似的数据用此模型
预测时,正确的百分比会有多大。这并不能保证模型的正确性,他只是说相似的数据用此
模型会得出相似的结果。
简单验证。最基本的测试方法是被称为简单验证的方法。做法是从原始数据中拿出一定百
分比的数据作为测试数据,这个百分比大概在5%到33%之间。注意在把数据库分成几部分时
,一定要保证选择的随机性,这样才能使分开的各部分数据的性质是一致的。
先用数据库的主体把模型建立起来,然后用此模型来预测测试集中的数据。出现错误的预
测与预测总数之间的比,称为错误率。正确的预测与总数的比,是准确率(准确率=1 - 错
误率)。对回归模型来说,可以用方差来描述准确的程度。
在一次模型的建立过程中,即使这种最简单的验证就要执行几十次。例如在训练神经网络
时,有时每一个训练周期就要求在测试集上运行一次,不断的训练测试,直到在测试集上
的准确率不再提高为止。
交叉验证。如果数据不是很多(比如只有几千条),那么你可能承受不了再把一部分数据
拿到一边不用,单用来做简单验证。交叉验证提供了一种让你使用全部数据的方法。首先
把原始数据随机平分成两份,然后用一部分做训练集另一部分做测试集计算错误率,做完
之后把两部分数据交换再计算一次,得到另一个错误率,最后再用所有的数据建立一个模
型,把上面得到的两个错误率进行平均作为最后用所有数据建立的模型的错误率。
更通用的算法是n-维交叉验证。先把数据随机分成不相交的n份。比如,如果把数据分成1
0份,先把第一份拿出来放在一边用作模型测试,把其他9份合在一起来建立模型,然后把
这个用90%的数据建立起来的模型用上面放在一边的第一份数据做测试。这个过程对每一份
数据都重复进行一次,得到10个不同的错误率。最后把所有数据放在一起建立一个模型,
模型的错误率为上面10个错误率的平均。
自举法是另一种评估模型错误率的技术。在数据量很小时尤其适用。与交叉验证一样模型
是用所有的数据建立。
依据所得到的模型和你对模型的预期结果,你可能修改参数用同样的算法再建立新的模型
,甚至采用其他的算法建立模型。别的方法说不定能提高预测的准确度。当然,没有一种
算法或工具适应所有的数据,通常也很难在开始决定那种算法对你所面临的问题来说是最
好的,因此很多情况下,需要建立用不同的方法(参数或算法)几个模型,从中选择最好
的。
--
业精于勤荒于嬉,行成于思毁于随。 —— 韩愈
临渊羡鱼不如退而结网。 —— 班固
勿以恶小而为之,勿以善小而不为。 —— 刘备
※ 来源:.南京大学小百合站 http://bbs.nju.edu.cn [FROM: 202.119.80.20]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -