背景
- 分類任務,什麼樣的人會獲取
- 891份樣本,7個特徵
- 有些特徵存在缺失需要補充,有些特徵意義不大需要刪除不參與建模
- 分析每個特徵對最終是否被救的重要度
年齡缺失值填充
# 中值填充
titanic["Age"] = titanic["Age"].fillna(titanic["Age"].median())
性別類別轉換
# 類別轉換
print (titanic["Sex"].unique())
# Replace all the occurences of male with the number 0.
titanic.loc[titanic["Sex"] == "male", "Sex"] = 0
titanic.loc[titanic["Sex"] == "female", "Sex"] = 1
線性迴歸預測
# 導入所需的庫
from sklearn.linear_model import LinearRegression
# 交叉驗證
from sklearn.model_selection import KFold
# 保留參與建模的特徵
predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked"]
# 初始化算法
alg = LinearRegression()
# 交叉驗證劃分
kf = KFold(3, random_state=1)
# 預測概率列表
predictions = []
for train, test in kf.split(titanic):
train_predictors = (titanic[predictors].iloc[train,:])
train_target = titanic["Survived"].iloc[train]
alg.fit(train_predictors, train_target)
# We can now make predictions on the test fold
test_predictions = alg.predict(titanic[predictors].iloc[test,:])
predictions.append(test_predictions)
#
邏輯迴歸
隨機森林
隨機森林調參
發現,添加新特徵
選取名字中的稱謂,正則表達式
家庭成員個數
特徵重要度
集成算法