新闻正文
,
5.建立模型。
对建立模型来说要记住的最重要的事是它是一个反复的过程。你需要仔细考察不
同的模型以判断哪个模型对你的商业问题最有用。你在寻找好的模型的过程中学
到的的东西会启发你修改你的数据,甚至改变最初对问题的定义。
一旦决定了预测的类型之后(分类还是回归),就需要为这个预测选择模型的类
型。可能是一棵决策树、神经网络、甚至传统的数学统计。选择什么样的模型决
定了你需对数据做哪些预处理工作。如神经网络需要做数据转换,有些数据挖掘
工具可能对输入数据的格式有特定的限制,等。一旦所有的数据准备好之后,就
可以开始训练你的模型了。
为了保证得到的模型具有较好的精确度和健壮性,需要一个定义完善的训练—验
证协议。有时也称此协议为带指导的学习。他的主要思想就是先用一部分数据建
立模型,然后再用剩下的数据来测试和验证这个得到的模型。有时还有第三个数
据集,称为验证集,因为测试集可能受模型的特性的影响,这时需要一个独立的
数据集来验证模型的准确性。
训练和测试数据挖掘模型需要把数据至少分成两个部分:一个用于模型训练,另
一个用于模型测试。如果不使用不同的训练和测试集,那么模型的准确度就很难
使人信服。用训练集把模型建立出来之后,就可以先在测试集数据上先试验一把,
此模型在测试集上的预测
准确度就是一个很好的指导数字,它说明如果将来与训练集和测试集类似的数据
用此模型预测时,正确的百分比会有多大。这并不能保证模型的正确性,他只是
说相似的数据用此模型会得出相似的结果。
简单验证。最基本的测试方法是被称为简单验证的方法。做法是从原始数据中拿
出一定百分比的数据作为测试数据,这个百分比大概在5%到33% 之间。注意在把
数据库分成几部分时,一定要保证选择的随机性,这样才能使分开的各部分数据
的性质是一致的。
先用数据库的主体把模型建立起来,然后用此模型来预测测试集中的数据。出现
错误的预测与预测总数之间的比,称为错误率。正确的预测与总数的比,是准确
率(准确率=1 - 错误率)。对回归模型来说,可以用方差来描述准确的程度。
在一次模型的建立过程中,即使这种最简单的验证就要执行几十次。例如在训练
神经网络时,有时每一个训练周期就要求在测试集上运行一次,不断的训练测试,
直到在测试集上的准确率不再提高为止。
交叉验证。如果数据不是很多(比如只有几千条),那么你可能承受不了再把一
部分数据拿到一边不用,单用来做简单验证。交叉验证提供了一种让你使用全部
数据的方法。首先把原始数据随机平分成两份,然后用一部分做训练集另一部分
做测试集计算错误率,做完之后把两部分数据交换再计算一次,得到另一个错误
率,最后再用所有的数据建立一个模型,把上面得到的两个错误率进行平均作为
最后用所有数据建立的模型的错误率。
型,把上面得到的两个错误率进行平均作为最后用所有数据建立的模型的错误率。
更通用的算法是n-维交叉验证。先把数据随机分成不相交的n份。比如,如果把数
据分成10份,先把第一份拿出来放在一边用作模型测试,把其他9份合在一起来建
立模型,然后把这个用90%的数据建立起来的模型用上面放在一边的第一份数据做
测试。这个过程对每一份数据都重复进行一次,得到10个不同的错误率。最后把
所有数据放在一起建立一个模型,模型的错误率为上面10个错误率的平均。
自举法是另一种评估模型错误率的技术。在数据量很小时尤其适用。与交叉验证
一样模型是用所有的数据建立。
依据所得到的模型和你对模型的预期结果,你可能修改参数用同样的算法再建立
新的模型,甚至采用其他的算法建立模型。别的方法说不定能提高预测的准确度。
当然,没有一种算法或工具适应所有的数据,通常也很难在开始决定那种算法对
你所面临的问题来说是最好的,因此很多情况下,需要建立用不同的方法(参数
或算法)几个模型,从中选择最好的。
相比于我们要达到的目标,与我们同行的人更加重要。
.
※ 修改:·wizard 於 06月20日13:58:27 修改本文
※ 转载:· bbs.sjtu.edu.cn
收藏到ViVi 收藏此页到365Key
上一篇:
数据挖掘入门(十二) 下一篇:
数据挖掘入门(十四)