Kaggle項目之海難分析拾遺

Kaggle項目之海難分析拾遺

來自專欄 我的大數據分析學習之路

在完成了大神Hadley Wickham文章翻譯之後,立馬進行了kaggle項目的學習。關於kaggle平台和Titanic項目在這裡就不多贅述了。用kaggle titanic 分別搜谷哥、百度,返回結果分別是:68300條和146000條。

google結果68300個

百度搜索結果146000個

面對這樣的結果,再看看題圖等,titanic項目從2012年9月29日開始,將於2020年4月7日結束,已經有11169個組參於11683名選手提交了60401個預測結果,項目還剩不足2年時間,我猶豫了:Titanic被這麼多人玩了這麼多年,100%的結果都出來了,多我一個還有意義嘛?

帶著心中的疑問,我翻看著各種關於Titanic項目分享也試運行其中的一些代碼,有兩個發現:1、項目不斷有新人提交結果;2、分享中有很多問題我是完全不明白的(其中也有一些是直接照搬其他人的)。既然對自己的成長有幫助,就有參於的必要。正是基於這樣的思考,下文只寫我掉「坑」和爬"坑"的內容。

坑一:kaggle註冊驗證 和很多同學一樣,註冊時遇到無法顯示驗證碼,驗證圖片顯示不完全等問題。為此,猴子專門給出了兩篇參考知乎:

Kaggle如何入門??

www.zhihu.com圖標魏家輝:Kaggle賬號註冊時驗證碼無法顯示解決方法以及如何使用谷歌瀏覽器?

zhuanlan.zhihu.com圖標

因為kaggle已經被google收購了,應該是出於統一管理用戶的考慮,註冊kaggle走的是google的驗證流動程。這就是為什麼生活在國內的大家掉「坑」的原因。在絕大多數時間,我們可以成功訪問kaggle網站包括註冊後的登陸。但在準備註冊kaggle賬號時,情況變得完全不一樣,無活顯示驗證碼、驗證圖片的「坑」來了。

Your Home for Data Science?

www.kaggle.com圖標

原因找到問題解決似乎很好辦,只要讓自己能夠google一下就行了(VPN是個不錯的選擇,當初我用的是藍燈),但對於使用GHOST版操作系統的同學,第二個「坑」又等著你了!為了精簡系統,一般人用不上的插件(功能設置)都被做了「優化」, 結果即使通過成功訪問google仍無法顯示 驗證碼、驗證圖片。既然大家選擇了學習,選擇了和一般人不同,我們就不再是一般人了,為了學習的路上小掉坑,學會原始軟體(即從微軟的鏡像下)的安裝當屬必備技能了。過程可能會長點,時間可能會多化點,可一個完整的操作系統會讓你受益無窮,你值得擁有--和「一鍵裝機」之類的說再見吧!!和數據分析無關,關於windows大家可以看看下面的網站:

MSDN, 我告訴你?

msdn.itellyou.cn圖標

坑二:花多眼亂 網上關於Titanic項目的文章很多,而且大多都是圖多字少,一言不和就上圖。也許由於關注點頻煩的在圖片和不熟悉的代碼間切換,參考文章看得越多,感覺越亂,越沒譜。為了解決這個問題,我決定先不看圖,只看文字說明。只要說明不清楚的,不論最後排名前百分幾,統統不看。慢慢地發現,很多圖都是沒有必要的,甚至是誤導人的。

如看圖基本沒有辦法知道Fare中位數是8.05。(僅看圖,估計是7-9都是可以的)

圖中紅線莫名其妙就成了$80,完全沒道理

其實群多文章,在載入數據包、下載讀入train和test數據和之後的上傳預測結果等環節都是一致的,它們的區別集中在缺失值的處理和模型預測兩個方面,這也是學習的關鍵所在。

坑三:關鍵點莫名其妙 在缺失值處理部分,Embarked的2個空值、Fare的1空值莫名其妙的被定為第62、830、1044項。其實,簡單一個名命就可以得到上述值:

S登船港口上船且Pclass為3的乘客費用Fare的中位數也可以通過下面的代碼得到,確實是8.05.

median(data[data$Pclass == 3 & data$Embarked == S, ]$Fare, na.rm = TRUE)

set.seed()中的數據不同文章有不同的值,如何你認為這個值是隨機填入就行了,那你就太天真了,值的不同,預測結果也是不同的。

set.seed(220)

set.seed(100)

set.seed(10)

使用不同的隨機種子值,最終的預測結果也有所不同。

坑四:建模挺費時 和之前幾乎秒出結果的操作不同,建模是個費時費CPU的工作。如果因此懷疑哪出了問題你就又掉「坑」了。使用以下代碼建模至少需要30分鐘能完成。結果佔143.6MB。

cforest(Survived ~ Pclass + Title + Sex + Age_New + FamilySize + Fare + Embarked, data = train,controls = cforest_unbiased(ntree=2000,mtry=3))

最後,關於建模Titanic項目僅僅是初探,需要學習的東西還很多。作為第四關學習的結束,也曬一下kaggle的成績吧。


推薦閱讀:

一些關於kaggle的比賽方法
如何看待Kaggle最新比赛Zillow禁止中国居民参加第二轮?
Google收購Kaggle!拿下最大機器學習及數據競賽平台
Kaggle入門系列:(二)Kaggle簡介
kaggle:Titanic: Machine Learning from Disaster,有什麼比較好的feature可以提取,哪位大神hit 80%了?

TAG:Kaggle | 科技 | 建模 |