kaggle-(Santander Value Prediction Challenge)

https://www.kaggle.com/greenarrow2018/santander-value-prediction-challenge

剖析问题

要求你预测用户产生的价值是多少,他会使用RMSLE来估计。简单来说就是回归问题,回归问题之前House prediction就遇到过,一般来说,看找这种问题首先还是要考虑label是否符合高斯分布,因为很多模型就是基于高斯分布完成。

引入数据,数据分析


引入数据后我们看到,首先是test比train要多很多,几乎是10倍了,对于过拟合要小心考虑,深度学习这些还是少用。其次是feature column特别多,feature engineering也要很小心。

观察这些数据,可以看到有很多的0,这是稀疏矩阵。可能会有很多全是0的列

Feature Engineering

Label

首先要观察label是不是符合高斯分布了,符合高斯分布有两个好处,首先许多模型都是基于高斯分布完成的,其次高斯分布会有很好的泛化性,因为大部分的误差都符合高斯分布。


直方图可以看到偏度有点大,需要做一个box-cos变换才行。

变换之后好多了。当然不要忘记对test也要做这个操作。

unique

接下来我们看看有没有多余的列,如果有一个column他的值全都是constant,那么我们可以直接去掉。



发现了256个列,等下直接删掉。

Correlation Coefficient

有三大相关系数,这里我没有选择pearson相关系数,因为很多0,只有少量的是非0元素,如果是线性相关性的话那不就是乘上0的了吗?所以我选择Spearman相关系数。



之所以用scipy不用pandas的corr,是因为pandas这个没办法加上进度条,而且这个4000多个特征,pandas要求很久的。



最后我们画出相关系数的条形图,会发现基本都是0.1左右,其实0.2以上才是弱相关的,所以看不出有什么相关性。

Feature important

既然画图是看不出了,那直接算法分析吧。我们采用ExtraTreesRegressor和lightbgm来判断feature的重要程度。



有些特征是相关系数特别大的,lightbgm也差不多,这里不贴图了。
删去那256列没有用的列之后直接预测的值是1.53。
借鉴了https://www.kaggle.com/alexpengxiao/preprocessing-model-averaging-by-xgb-lgb-1-39
的做法之后改进。

Upgrade

主要改进在5个方面。

  • 特征重要性使用随机森林模型。其实我觉得这个影响应该是不大的。
  • 只保留了1000个重要的模型。
  • 使用Kolmogorov-Smirnov test来判断这train和test的column是否是同一个distribution出来的。
  • 增加了statistical feature 和 low-dimension features
  • 聚合模型
    其中第三第四点我是没有想到。第三点使用KS假设检验来检测train和test的column有哪一列不是同一个distribution的,如果不是,就是删了。因为其实检验了之后并没有不是同一个distribution生成的,所以notebook就懒的写的了。第四点中他增加的特征有两种,一种是统计特征,比如一行中的均值,方差,最大值等等,这种做法之前我还没有遇到过,个人认为这种添加可能只是应用于少数情况吧。毕竟想其他如果不是匿名的column这么用就太荒谬了。另一个是添加了低纬度的数据,讲原始数据做的降维之后和原始数据合并,这个做法也是第一次见,很神奇。但是不得不说还是有效果的,可能是一种特征增强的方法吧。
    最后score是1.41,比原来的好上不少。
    主要接触了几个新的数据预处理方法:
    1. 如果column非常多,可能会存在常数列,可以考虑去掉。
    2. 增加feature还可以增加statistical feature和low-dimension feature, 但是场合可能要考虑。
    3. feature importance主要有3个,random forest,lightbgm,ExtraTrees
    4. KS假设检验检测是否同一分布(我觉得这个很重要。)

条形图,直方图,柱状图

条形图和柱状图表达的数据的形式基本相同,只不过一个横着一个竖着。


条形图

柱状图

直方图和条形图和柱状图的区别在于,直方图是描述连续变量的,比如上面的label画的直方图就是,一个一个区间的数量。而条形图和柱状图是离散变量的,如上面的feature importance所画的图。


Pearson correlation coefficient

皮尔森相关系数是一种线性相关系数。用来记录两个变量之间的线性相关程度的。绝对值越大,表示相关系数越强
\rho_{x,y} = \frac{cov(X, Y)}{\sigma_X\sigma_Y} = \frac{E(X - \mu_X)E(Y - \mu_Y)}{\sigma_X \sigma_Y}
估算样本的协方差和标准差,可得到样本相关系数:
r = \frac{\sum^n_{i=1} (X_i - X)(Y_i - Y)}{\sqrt{\sum^n_{i=1}(X_i - X)^2}\sqrt{\sum^n_{i=1}(Y_i - Y)^2}}
当r > 0的时候说明两个变量是正相关,一个变量越大另一个变量也是越大的。
当r < 0的时候说明两个变量负相关,一个变量越大另一个变量反而越小。
当r = 0说明两个变量无相关性。
当r = 1 or -1说明两个变量相关性呈线性直线。
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
皮尔森系数通常要求是数据间要符合联合高斯分布,不是仅仅X和Y分比符合高斯分布,而是两个数据一起符合一个联合高斯分布,当然这个条件并不是严格限制的。另外皮尔森系数还要求数据间差距不能太大,也就是离群点不能多,否则会干扰计算结果。
所以pearson相关系数有四个使用条件:
1. 两个变量都是要测量到的连续变量。
2. 两个变量总体都应该符合高斯分布。
3. 变量必需是成对存在。
4. 变量间应该为线性关系。
但是就算是Pearson相关系数是0,也可能存在曲线的关系。

Spearman correlation coefficient

Pearson相关系数并不是在什么情况下都可以使用,而Spearman相关系数是一个非参数度量两个变量相关性的指标,用单调函数来评估两个变量之间的相关性。
首先对X_i, Y_i按照从大到小的顺序排列,X_i^{'},Y_i^{'}为排列之后的下标,也就是排列之后所在的位置,令d_i = X_i^{'}-Y_i^{'}为秩差。则相关系数可以表示成:
\rho_{X,Y} = 1 - \frac{6 \sum^n_{i=1} d_{i}^2}{n(n^2-1)}
Spearman相关系数经常被称为是非参数相关的参数,有两层含义:
1. 只要X和Y都单调的函数关系,X和Y就是spearman相关的。而pearson是只有在线性相关的才有相关性。
2. Spearman可以在不知道X和Y的概率密度的时候求解。
3. Spearman对离群点的敏感性不高。因为你最大要不是排第一个要不就是排最后一个。
虽然这个Spearman的适用范围会广一些,但是统计效能要比Pearson低一些,不太容易检测出相关性。

Kendall correlation coefficient

kendall相关系数是基于协同的思想,对于两个变量,如果X_i > Y_i and X_j > Y_j 或X_i < Y_i and X_j <Y_j就称这两对观察值是和谐的,否则就是不是。
\rho_{X,Y} = \frac{(number of the concordant pairs)-(number of the discordant pairs)} {\frac{1}{2}n(n-1)}
和谐的观察值对减去不和谐的观察值对的数量,除以总的观察值对数。
Kendall主要是检测两个变量之间的等级关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342