背着锄头的互联网农民

0%

Titanic问题预测存活(2)

上一篇文章中我们初步使用xgboost模型预测存活,达到了75.1%的准确率。本文中我们将尝试一些优化工作,将预测准确率提升到80.4%。

参数调优

简单使用max_depth=4, learning_rate=0.1, n_estimates=200,准确率可以提升到76.5%。另外可以使用GridSearch的方法迭代测试每个超参数的最优值。

1
model = xgb.XGBClassifier(max_depth=4, sub_sample=0.7, colsample_btree=0.1, learning_rate=0.1, n_estimators=200);

增加familysize特征:提升1%的准确度
1
combined_data["fimalysize"] = combined_data["SibSp"] + combined_data["Parch"] + 1
优化Cabin特征:提升2%的准确度
1
2
3
4
5
6
7
8
9
def getCabin(cabin):
if cabin == "N":
return 0
else:
return 1

def pre_process_cabin(df):
df["Cabin"] = df["Cabin"].apply(getCabin)
return df
挑选比较重要的feature进行训练,抛弃不重要的:提升2%的准确度
1
2
features = ["Pclass", "Sex1", "child", "fimalysize", "Fare", "Embarked1", "Cabin"]
model = xgboostClassify(X_train[features], Y_train)
总结

最后提交到kaggle达到80.4%的准确率。