kaggle-(Santander Value Prediction Challenge)

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

剖析問題

要求你預(yù)測用戶產(chǎn)生的價(jià)值是多少,他會(huì)使用RMSLE來估計(jì)。簡單來說就是回歸問題,回歸問題之前House prediction就遇到過,一般來說,看找這種問題首先還是要考慮label是否符合高斯分布,因?yàn)楹芏嗄P途褪腔诟咚狗植纪瓿伞?/p>

引入數(shù)據(jù),數(shù)據(jù)分析


引入數(shù)據(jù)后我們看到,首先是test比train要多很多,幾乎是10倍了,對(duì)于過擬合要小心考慮,深度學(xué)習(xí)這些還是少用。其次是feature column特別多,feature engineering也要很小心。

觀察這些數(shù)據(jù),可以看到有很多的0,這是稀疏矩陣。可能會(huì)有很多全是0的列

Feature Engineering

Label

首先要觀察label是不是符合高斯分布了,符合高斯分布有兩個(gè)好處,首先許多模型都是基于高斯分布完成的,其次高斯分布會(huì)有很好的泛化性,因?yàn)榇蟛糠值恼`差都符合高斯分布。


直方圖可以看到偏度有點(diǎn)大,需要做一個(gè)box-cos變換才行。

變換之后好多了。當(dāng)然不要忘記對(duì)test也要做這個(gè)操作。

unique

接下來我們看看有沒有多余的列,如果有一個(gè)column他的值全都是constant,那么我們可以直接去掉。



發(fā)現(xiàn)了256個(gè)列,等下直接刪掉。

Correlation Coefficient

有三大相關(guān)系數(shù),這里我沒有選擇pearson相關(guān)系數(shù),因?yàn)楹芏?,只有少量的是非0元素,如果是線性相關(guān)性的話那不就是乘上0的了嗎?所以我選擇Spearman相關(guān)系數(shù)。



之所以用scipy不用pandas的corr,是因?yàn)閜andas這個(gè)沒辦法加上進(jìn)度條,而且這個(gè)4000多個(gè)特征,pandas要求很久的。



最后我們畫出相關(guān)系數(shù)的條形圖,會(huì)發(fā)現(xiàn)基本都是0.1左右,其實(shí)0.2以上才是弱相關(guān)的,所以看不出有什么相關(guān)性。

Feature important

既然畫圖是看不出了,那直接算法分析吧。我們采用ExtraTreesRegressor和lightbgm來判斷feature的重要程度。



有些特征是相關(guān)系數(shù)特別大的,lightbgm也差不多,這里不貼圖了。
刪去那256列沒有用的列之后直接預(yù)測的值是1.53。
借鑒了https://www.kaggle.com/alexpengxiao/preprocessing-model-averaging-by-xgb-lgb-1-39
的做法之后改進(jìn)。

Upgrade

主要改進(jìn)在5個(gè)方面。

  • 特征重要性使用隨機(jī)森林模型。其實(shí)我覺得這個(gè)影響應(yīng)該是不大的。
  • 只保留了1000個(gè)重要的模型。
  • 使用Kolmogorov-Smirnov test來判斷這train和test的column是否是同一個(gè)distribution出來的。
  • 增加了statistical feature 和 low-dimension features
  • 聚合模型
    其中第三第四點(diǎn)我是沒有想到。第三點(diǎn)使用KS假設(shè)檢驗(yàn)來檢測train和test的column有哪一列不是同一個(gè)distribution的,如果不是,就是刪了。因?yàn)槠鋵?shí)檢驗(yàn)了之后并沒有不是同一個(gè)distribution生成的,所以notebook就懶的寫的了。第四點(diǎn)中他增加的特征有兩種,一種是統(tǒng)計(jì)特征,比如一行中的均值,方差,最大值等等,這種做法之前我還沒有遇到過,個(gè)人認(rèn)為這種添加可能只是應(yīng)用于少數(shù)情況吧。畢竟想其他如果不是匿名的column這么用就太荒謬了。另一個(gè)是添加了低緯度的數(shù)據(jù),講原始數(shù)據(jù)做的降維之后和原始數(shù)據(jù)合并,這個(gè)做法也是第一次見,很神奇。但是不得不說還是有效果的,可能是一種特征增強(qiáng)的方法吧。
    最后score是1.41,比原來的好上不少。
    主要接觸了幾個(gè)新的數(shù)據(jù)預(yù)處理方法:
    1. 如果column非常多,可能會(huì)存在常數(shù)列,可以考慮去掉。
    2. 增加feature還可以增加statistical feature和low-dimension feature, 但是場合可能要考慮。
    3. feature importance主要有3個(gè),random forest,lightbgm,ExtraTrees
    4. KS假設(shè)檢驗(yàn)檢測是否同一分布(我覺得這個(gè)很重要。)

條形圖,直方圖,柱狀圖

條形圖和柱狀圖表達(dá)的數(shù)據(jù)的形式基本相同,只不過一個(gè)橫著一個(gè)豎著。


條形圖

柱狀圖

直方圖和條形圖和柱狀圖的區(qū)別在于,直方圖是描述連續(xù)變量的,比如上面的label畫的直方圖就是,一個(gè)一個(gè)區(qū)間的數(shù)量。而條形圖和柱狀圖是離散變量的,如上面的feature importance所畫的圖。


Pearson correlation coefficient

皮爾森相關(guān)系數(shù)是一種線性相關(guān)系數(shù)。用來記錄兩個(gè)變量之間的線性相關(guān)程度的。絕對(duì)值越大,表示相關(guān)系數(shù)越強(qiáng)
\rho_{x,y} = \frac{cov(X, Y)}{\sigma_X\sigma_Y} = \frac{E(X - \mu_X)E(Y - \mu_Y)}{\sigma_X \sigma_Y}
估算樣本的協(xié)方差和標(biāo)準(zhǔn)差,可得到樣本相關(guān)系數(shù):
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}}
當(dāng)r > 0的時(shí)候說明兩個(gè)變量是正相關(guān),一個(gè)變量越大另一個(gè)變量也是越大的。
當(dāng)r < 0的時(shí)候說明兩個(gè)變量負(fù)相關(guān),一個(gè)變量越大另一個(gè)變量反而越小。
當(dāng)r = 0說明兩個(gè)變量無相關(guān)性。
當(dāng)r = 1 or -1說明兩個(gè)變量相關(guān)性呈線性直線。
0.8-1.0 極強(qiáng)相關(guān)
0.6-0.8 強(qiáng)相關(guān)
0.4-0.6 中等程度相關(guān)
0.2-0.4 弱相關(guān)
0.0-0.2 極弱相關(guān)或無相關(guān)
皮爾森系數(shù)通常要求是數(shù)據(jù)間要符合聯(lián)合高斯分布,不是僅僅X和Y分比符合高斯分布,而是兩個(gè)數(shù)據(jù)一起符合一個(gè)聯(lián)合高斯分布,當(dāng)然這個(gè)條件并不是嚴(yán)格限制的。另外皮爾森系數(shù)還要求數(shù)據(jù)間差距不能太大,也就是離群點(diǎn)不能多,否則會(huì)干擾計(jì)算結(jié)果。
所以pearson相關(guān)系數(shù)有四個(gè)使用條件:
1. 兩個(gè)變量都是要測量到的連續(xù)變量。
2. 兩個(gè)變量總體都應(yīng)該符合高斯分布。
3. 變量必需是成對(duì)存在。
4. 變量間應(yīng)該為線性關(guān)系。
但是就算是Pearson相關(guān)系數(shù)是0,也可能存在曲線的關(guān)系。

Spearman correlation coefficient

Pearson相關(guān)系數(shù)并不是在什么情況下都可以使用,而Spearman相關(guān)系數(shù)是一個(gè)非參數(shù)度量兩個(gè)變量相關(guān)性的指標(biāo),用單調(diào)函數(shù)來評(píng)估兩個(gè)變量之間的相關(guān)性。
首先對(duì)X_i, Y_i按照從大到小的順序排列,X_i^{'},Y_i^{'}為排列之后的下標(biāo),也就是排列之后所在的位置,令d_i = X_i^{'}-Y_i^{'}為秩差。則相關(guān)系數(shù)可以表示成:
\rho_{X,Y} = 1 - \frac{6 \sum^n_{i=1} d_{i}^2}{n(n^2-1)}
Spearman相關(guān)系數(shù)經(jīng)常被稱為是非參數(shù)相關(guān)的參數(shù),有兩層含義:
1. 只要X和Y都單調(diào)的函數(shù)關(guān)系,X和Y就是spearman相關(guān)的。而pearson是只有在線性相關(guān)的才有相關(guān)性。
2. Spearman可以在不知道X和Y的概率密度的時(shí)候求解。
3. Spearman對(duì)離群點(diǎn)的敏感性不高。因?yàn)槟阕畲笠皇桥诺谝粋€(gè)要不就是排最后一個(gè)。
雖然這個(gè)Spearman的適用范圍會(huì)廣一些,但是統(tǒng)計(jì)效能要比Pearson低一些,不太容易檢測出相關(guān)性。

Kendall correlation coefficient

kendall相關(guān)系數(shù)是基于協(xié)同的思想,對(duì)于兩個(gè)變量,如果X_i > Y_i and X_j > Y_j 或X_i < Y_i and X_j <Y_j就稱這兩對(duì)觀察值是和諧的,否則就是不是。
\rho_{X,Y} = \frac{(number of the concordant pairs)-(number of the discordant pairs)} {\frac{1}{2}n(n-1)}
和諧的觀察值對(duì)減去不和諧的觀察值對(duì)的數(shù)量,除以總的觀察值對(duì)數(shù)。
Kendall主要是檢測兩個(gè)變量之間的等級(jí)關(guān)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,629評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,976評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評(píng)論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,139評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,686評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,411評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,641評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,820評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,362評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,604評(píng)論 2 380