-
逻辑回归,需要预先处理缺失值和异常值【可参考task3特征工程】;
-
树模型,数据不需要预处理,不需要归一化,不需要处理缺失数据;
鉴于task3基本没有对数据进行细致的处理,所以这里先用树模型进行建模。
模型决定好了,需要对数据集进行划分。
这里我是利用自己手头的数据进行分析的。
首先,需要以4:1的比例划分训练集和验证集,然后再对训练集进行子训练集和子测试集的划分。
关于4:1的比例进行划分,本来是借助excel的RANDBETWEEN(1,max值)进行划分,但看的教程上提到一点:
关于数据集的划分,通常要保证以下两个条件:
1、训练集和测试集的分布要与样本真实分布一致,即训练集和测试集都要保证是从样本真实分布中独立同分布采样而得。
2、训练集和测试集要互斥。
现在不确定RANDBETWEEN(1,max值)的划分是否合理。
所以继续下探:
数据集的划分有三种方法:
- 留出法
留出法是直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。需要注意的是在划分的时候要尽可能保证数据分布的一致性,即避免因数据划分过程引入额外的偏差而对最终结果产生影响。为了保证数据分布的一致性,通常我们采用分层采样的方式来对数据进行采样。(Tips: 通常,会将数据集D中大约2/3~4/5的样本作为训练集,其余的作为测试集。)
- 交叉验证法
k折交叉验证通常将数据集D分为k份,其中k-1份作为训练集,剩余的一份作为测试集,这样就可以获得k组训练/测试集,可以进行k次训练与测试,最终返回的是k个测试结果的均值。交叉验证中数据集的划分依然是依据分层采样的方式来进行。
对于交叉验证法,其k值的选取往往决定了评估结果的稳定性和保真性,通常k值选取10。
当k=1的时候,我们称之为留一法
- 自助法
我们每次从数据集D中取一个样本作为训练集中的元素,然后把该样本放回,重复该行为m次,这样我们就可以得到大小为m的训练集,在这里面有的样本重复出现,有的样本则没有出现过,我们把那些没有出现过的样本作为测试集。
进行这样采样的原因是因为在D中约有36.8%的数据没有在训练集中出现过。留出法与交叉验证法都是使用分层采样的方式进行数据采样与划分,而自助法则是使用有放回重复采样的方式进行数据采样
数据划分总结:
对于数据量充足的时候,通常采用留出法或者k折交叉验证法来进行训练/测试集的划分;
对于数据集小且难以有效划分训练/测试集时使用自助法;
对于数据集小且可有效划分的时候最好使用留一法来进行划分,因为这种方法最为准确
所以,适合用留出法(分层采样),或者是k为10的交叉验证法。
后面研究下。