例子描述:
比賽地址:https://www.kaggle.com/c/titanic
使用乘客數(shù)據(jù)(即姓名,年齡,性別,社會(huì)經(jīng)濟(jì)艙等),建立一個(gè)預(yù)測(cè)模型來回答以下問題:“什么樣的人更有可能生存?” 。這是一個(gè)只適合小白的極簡(jiǎn)版本,不求排名,只求入門。
所需環(huán)境:Anaconda3
下載并安裝:Anaconda3-2020.02-Windows-x86_64.exe
下載頁面:https://www.anaconda.com/distribution/
下載地址:https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe
3個(gè)步驟:
- 閱讀比賽介紹,下載數(shù)據(jù)集
- 導(dǎo)入數(shù)據(jù)集
- 選擇特征作為訓(xùn)練數(shù)據(jù)
- 構(gòu)建模型
- 預(yù)測(cè)測(cè)試數(shù)據(jù)生成gender_submission.csv文件,用于提交到kaggle
- 上傳gender_submission.csv文件到kaggle
1. 閱讀比賽介紹,下載數(shù)據(jù)集
比賽介紹:https://www.kaggle.com/c/titanic/overview
下載數(shù)據(jù)集:https://www.kaggle.com/c/titanic/data
image.png
2. 導(dǎo)入數(shù)據(jù)集
打開Anaconda3并啟動(dòng)Jupyter Notebook
image.png
image.png
新建Python文件編寫代碼
編寫代碼:
#導(dǎo)入相關(guān)模塊
import numpy as np
import pandas as pd
#導(dǎo)入數(shù)據(jù)
train_data = pd.read_csv("D:/Anaconda3/notebook/kaggle/Titanic/data/train.csv") #你下載的數(shù)據(jù)集文件路徑,不要用中文
train_data.head() #查看前5行數(shù)據(jù)
3. 選擇特征作為訓(xùn)練數(shù)據(jù)
- PassengerID(ID)
- Survived(存活與否)
- Pclass(客艙等級(jí),較為重要)
- Name(姓名,可提取出更多信息)
- Sex(性別,較為重要)
- Age(年齡,較為重要)
- Parch(直系親友)
- SibSp(旁系)
- Ticket(票編號(hào))
- Fare(票價(jià))
- Cabin(客艙編號(hào))
- Embarked(上船的港口編號(hào))
features = ["Pclass", "Sex", "SibSp", "Parch"] #四個(gè)特征
X = pd.get_dummies(train_data[features]) #構(gòu)造訓(xùn)練樣本數(shù)據(jù)
y = train_data["Survived"] #構(gòu)造訓(xùn)練標(biāo)簽數(shù)據(jù)
為了簡(jiǎn)單,這里只選擇4個(gè)特征用于模型訓(xùn)練
4. 構(gòu)建模型
from sklearn.ensemble import RandomForestClassifier #使用隨機(jī)森林
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1) #構(gòu)造模型
model.fit(X, y) #訓(xùn)練模型
5. 預(yù)測(cè)測(cè)試數(shù)據(jù)生成gender_submission.csv文件,用于提交到kaggle
X_test = pd.get_dummies(test_data[features]) #選擇特征,構(gòu)造測(cè)試樣本數(shù)據(jù)
predictions = model.predict(X_test) #對(duì)測(cè)試數(shù)據(jù)繼續(xù)預(yù)測(cè)
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('D:/Anaconda3/notebook/kaggle/Titanic/data/gender_submission.csv', index=False) #保存預(yù)測(cè)結(jié)果
print("預(yù)測(cè)結(jié)果gender_submission.csv文件保存成功,可以提交到kaggle了")
6. 上傳gender_submission.csv文件到kaggle
提交文件
選擇文件然后提交
這里有個(gè)錯(cuò)誤,是因?yàn)樘峤晃募枰瓑?/p>
翻墻后成功
翻墻后再次提交成功