本篇文章針對剛剛接觸Kaggle的同學(xué)馒闷,介紹參加Kaggle數(shù)據(jù)分析競賽的完整流程,最快速度完成一個比賽狞山。
前言
Kaggle是一個數(shù)據(jù)分析的競賽平臺走芋。企業(yè)可以將數(shù)據(jù)理朋、問題描述和期望指標(biāo)發(fā)布到Kaggle平臺絮识,以競賽的形式向廣大的數(shù)據(jù)科學(xué)家征集解決方案。參賽者將數(shù)據(jù)下載下來嗽上,分析數(shù)據(jù)次舌、建立模型、解決問題兽愤,最后提交解決問題的結(jié)果彼念。
進入Kaggle網(wǎng)站:
Kaggle中的比賽主要分為三類:Featured、Research和Getting Started浅萧。進入Kaggle網(wǎng)站的Competition欄目后逐沙,我們可以看到目前正在舉行的競賽。我們選擇Titanic幸存者預(yù)測這個競賽洼畅,教大家一步一步完成比賽吩案。
Kaggle競賽項目的全過程:
- 了解問題背景:對競賽的背景進行了解
- 下載數(shù)據(jù)
- 分析數(shù)據(jù):Explore Data Analysis
- 數(shù)據(jù)處理和特征工程:Data Process and FeatureEngineering
- 模型選擇:Model Select
- 提交結(jié)果:Submission
第一步:了解問題背景
沒錯,Titanic就是那部著名的電影:“泰坦尼克號”帝簇。我們需要預(yù)測泰坦尼克號沉沒的時候哪些乘客成為了幸存者徘郭。
第二步:下載數(shù)據(jù)
有三個數(shù)據(jù)csv文件需要我們下載。
gender_submission.csv:我們需要提交的示例文件
test.csv:測試數(shù)據(jù)集
train.csv:訓(xùn)練數(shù)據(jù)集
第三步:讀取數(shù)據(jù)丧肴,分析數(shù)據(jù)
Pandas是目前最強大的數(shù)據(jù)分析包残揉,沒有之一∮蟾。可以用.info()函數(shù)查看當(dāng)前dataframe的信息抱环。
訓(xùn)練數(shù)據(jù)集有891行12列。各列代表的信息:
· PassengerId:一個用以標(biāo)記每個乘客的數(shù)字id
· Survived:標(biāo)記乘客是否幸存——幸存(1)纸巷、死亡(0)镇草。我們將預(yù)測這一列。
· Pclass:標(biāo)記乘客所屬船層——第一層(1),第二層(2),第三層(3)瘤旨。
· Name:乘客名字梯啤。
· Sex:乘客性別——男male、女female
· Age:乘客年齡裆站。部分。
· SibSp:船上兄弟姐妹和配偶的數(shù)量黔夭。
· Parch:船上父母和孩子的數(shù)量宏胯。
· Ticket:乘客的船票號碼。
· Fare:乘客為船票付了多少錢本姥。
· Cabin:乘客住在哪個船艙肩袍。
· Embarked:乘客從哪個地方登上泰坦尼克號。
第四步婚惫、數(shù)據(jù)處理和特征工程
數(shù)據(jù)分析過程中氛赐,了解業(yè)務(wù)背景是非常重要的魂爪。
大家記得在泰坦尼克號沉沒的時候,船長說了一句話:小孩和婦女先走艰管,男人留下滓侍。
知道這個背景以后,在做數(shù)據(jù)處理的時候我們就應(yīng)該知道Sex和Age兩個字段應(yīng)該是關(guān)鍵牲芋。
(1)Age處理撩笆,填充缺失值
Age字段共有714,缺失值比較多缸浦,我們采用Age的中位數(shù)進行填充夕冲。
注意:我們需要同時對訓(xùn)練集和測試集做相同的處理。
(2)Sex處理裂逐,屬性變換
Sex有兩個屬性:male和female歹鱼,代表男性和女性。為了方便分類器處理卜高,我們用1和0來代替弥姻。
(3)特征選擇
為了最快速度上手,我們只需要選擇Age和Sex兩個字段篙悯。
第五步:模型選擇
我們的任務(wù)是預(yù)測乘客是否能幸存蚁阳,很明顯是一個基本的二分類問題(Binary Classification)「胝眨可以用來處理二分類問題的模型主要有:感知機螺捐、Logistic回歸、決策樹矮燎、SVM和隨機森林等定血,可選的模型非常多。網(wǎng)上有一張圖诞外,建議我們選擇哪種模型應(yīng)用到我們的項目中澜沟。
這里我們選擇sciket-learn提供的決策樹(Decision Tree)模型。
第六步峡谊、預(yù)測結(jié)果并提交
最后茫虽,將我們訓(xùn)練好的模型在測試集上進行測試,將結(jié)果按照要求保存下來既们。將結(jié)果提交到kaggle網(wǎng)站濒析,計算我們的得分。
(1)保存結(jié)果
(2)提交到Kaggle
Kaggle提供了Submit Predictions頁面啥纸,我們只需要將decision_tree.csv文件拖拽到uploadsubmission file中就可以自動上傳号杏。
我們將預(yù)測結(jié)果提交到Kaggle網(wǎng)站,Kaggle會對我們提交的結(jié)果與kaggle后臺的數(shù)據(jù)進行對比斯棒,計算出我們的準(zhǔn)確率和得分(score)盾致。
此次提交的準(zhǔn)確率只有60.7%主经。
我們第一次提交結(jié)果,不要太過于在意分?jǐn)?shù)庭惜,接下來的系列文章我將會介紹很多提升分?jǐn)?shù)的技巧罩驻。
結(jié)束語
本文介紹了參加kaggle數(shù)據(jù)分析競賽的一個完整流程:加入比賽并了解比賽背景、獲取數(shù)據(jù)蜈块、數(shù)據(jù)分析鉴腻、特征工程、模型訓(xùn)練百揭、提交結(jié)果∷ィ現(xiàn)在,我們對參加比賽的完整流程已經(jīng)比較了解器一,下一步就是通過特征工程课锌、調(diào)參、模型融合等手段來提高我們的分?jǐn)?shù)祈秕。
歡迎關(guān)注微信公眾號:kaggle數(shù)據(jù)分析渺贤。后臺回復(fù)“titanic”獲取代碼和數(shù)據(jù)。