记得网上说学习东西的时候,“使用”是记得最牢的,所以我打算开始着手用Matlab写一个Kaggle。之前一直不知道kaggle上面的题目是怎么分 类的,就是不知道Feature、Musters、Recruiting、Research etc.是怎么分类的,后来在Google上找到一个官方的介绍“Welcome to Kaggle”讲这方面的。
现在决定选个简单一点直接一点的题目:Loan Default Prediction - Imperial College London,觉得这个题目比较入手,基本上就是简单的“分类+回归”问题。
题目是预测贷款能否还清的问题,以前贷款还清就预测能不能还清就好了,现在的题目是如果没还清,那么银行(我们)会亏损多少。
数
据是这样的,id,features,loss。其中id是每一个贷款案例的id,这个id是按照时间顺序排的,但是题目特别说明了在最后的测试用例中,
这个id是随机排列的,所以应该不能直接用作分类或回归的特征,所以在模型建成后不能用这个作为特征。其中的feature是从f1到f778一共778
个,是所给的特征,所有特征均为数字,不过这些特征中有的是正规化过的,即所有值都在0到1之间,有的是明显的类别标号1、
2、3什么的,有的是整型值,有的是浮点型值。里面含有缺失值,不过不太多,而且分步是这样的,一缺就缺一行的大部分。而且有的列是用0来代替缺失值的,
有的是用NA来代替缺失值的。最后的loss值是答案,从0到100,代表损失的百分数,其中零最多,也就是反例最多,大概十分之九是反例(即0)。
现在的想法是这样的,大框就是先分类,在回归。就是先将正例和反例分出来,然后再对正例进行回归。一共要用两个大模型。
现在能想到的损招有那么几个:
1、
缺失特征关联:因为缺失值是一缺就缺几个列,而且这几个列是固定的几个,所以得把缺失特征的关联情况给弄清楚,因为有个是用0做缺失值,有的是用NULL
做缺失值,这样很不好,所以要把作为缺失值的0筛出来。这个方法留作备用,因为毕竟缺失值占少数,如果用均值什么的代替缺失值跟这个效果差不过就不用那么
麻烦了,所以这个方法用作最后的微调。
2、反例歧化:这是一个设想,就是虽然反例都是一样的答案0,但是自然上他们应
该也是有大小关系的,我想通过非监督的回归手段,将他们0下的潜在负值求出来,这个要问问。然后再回归的时候就可以用这部分数据作为训练样本了,不过这么
做的条件是训练数据的空间处在上升期,如果光是正例的训练数据就已经能让模型达到成熟期就不用这个方法了,这个方法刘做最后的调整。
浙公网安备 33010602011771号