標籤:

5機器學習入門:Kaggle和泰坦尼克號預測

機器學習步驟:

提出問題—理解數據—數據清洗—構建模型—模型評估—方案實施

Kaggle項目:泰坦尼克號生存率預測

1.提出問題

什麼樣的人在泰坦尼克號中更容易存活?

2.理解數據

2.1採集數據

從Kaggle泰坦尼克號項目頁面下載數據:kaggle.com/c/titanic

2.2導入數據

2.3查看數據集信息

3.數據清洗

3.1數據預處理

數據類型列:

年齡(Age)、船艙號(Cabin)裡面有缺失數據:

1)年齡(Age)裡面數據總數是1046條,缺失了1309-1046=263,缺失率263/1309=20%

2)船票價格(Fare)裡面數據總數是1308條,缺失了1條數據

對於數據類型,處理缺失值最簡單的方法就是用平均數來填充缺失值。

字元串列:

1)登船港口(Embarked)裡面數據總數是1307,只缺失了2條數據,缺失比較少

2)船艙號(Cabin)裡面數據總數是295,缺失了1309-295=1014,缺失率=1014/1309=77.5%,缺失比較大

3.2特徵提取

查看數據類型

1)數值類型:

乘客編號(PassengerId),年齡(Age),船票價格(Fare),同代直系親屬人數(SibSp),不同代直系親屬人數(Parch)

2)時間序列:無

3)分類數據:

有直接類別的:

乘客性別(Sex):男性male,女性female

登船港口(Embarked):出發地點S=英國南安普頓Southampton,途徑地點1:C=法國 瑟堡市Cherbourg,出發地點2:Q=愛爾蘭 昆士敦Queenstown

客艙等級(Pclass):1=1等艙,2=2等艙,3=3等艙

字元串類型:

可能從這裡面提取出特徵來,也歸到分類數據中

乘客姓名(Name),客艙號(Cabin),船票編號(Ticket)

3.2.1分類數據:有直接類別的

性別(Sex)

登船港口(Embarked)

客艙等級(Pclass)

3.2.2分類數據:字元串類型

從姓名中提取頭銜

注意到在乘客名字(Name)中,有一個非常顯著的特點:乘客頭銜每個名字當中都包含了具體的稱謂或者說是頭銜,將這部分信息提取出來後可以作為非常有用一個新變數,可以幫助我們進行預測。

從客艙號中提取客艙類別

建立家庭人數和家庭類別

3.3特徵選擇

相關係數法:計算各個特徵的相關係數

根據各個特徵與生成情況(Survived)的相關係數大小,我們選擇了這幾個特徵作為模型的輸入:

頭銜(titleDf)、客艙等級(pclassDf)、家庭大小(familyDf)、船票價格(Fare)、船艙號(cabinDf)、登船港口(embarkedDf)、性別(Sex)

4.構建模型

4.1建立訓練集和測試集

1)坦尼克號測試數據集因為是我們最後要提交給Kaggle的,裡面沒有生存情況的值,所以不能用於評估模型。我們將Kaggle泰坦尼克號項目給我們的測試數據,叫做預測數據集(記為pred,也就是預測英文單詞predict的縮寫)。也就是我們使用機器學習模型來對其生存情況做預測。

2)我們使用Kaggle泰坦尼克號項目給的訓練數據集,做為我們的原始數據集(記為source),

從這個原始數據集中拆分出訓練數據集(記為train:用於模型訓練)和測試數據集(記為test:用於模型評估)。

4.2選擇機器學習演算法

4.3訓練模型

5.評估模型

6.方案實施

使用預測數據集到底預測結果,並保存到csv文件中,上傳到Kaggle中,就可以看到排名。

總結:


推薦閱讀:

【數據分析】中文筆記翻譯計劃順利結束
數據分析(1)-Python基礎
IMDB Movie :Python數據分析報告
第一次製作數據報告

TAG:數據分析 |