【案例】泰坦尼克獲救預測

背景

  • 分類任務,什麼樣的人會獲取
  • 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)

# 

邏輯迴歸

隨機森林

隨機森林調參

發現,添加新特徵

選取名字中的稱謂,正則表達式

家庭成員個數

特徵重要度

集成算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章