5機器學習入門:Kaggle和泰坦尼克號預測
機器學習步驟:
提出問題—理解數據—數據清洗—構建模型—模型評估—方案實施
Kaggle項目:泰坦尼克號生存率預測
1.提出問題
什麼樣的人在泰坦尼克號中更容易存活?
2.理解數據
2.1採集數據
從Kaggle泰坦尼克號項目頁面下載數據:https://www.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:數據分析 |