泰坦尼克号生存分析

数据

(数据来源)
https://www.kaggle.com/c/titanic/overview
(数据详情)

fare 票价
sibsp 泰坦尼克号的兄弟、配偶
parch 泰坦尼克号的父母、孩子

训练模型

import pandas as pd
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
train_path = '/home/aistudio/data/data39090/train.csv'
train_data = pd.read_csv(train_path)
train_data = train_data.dropna(axis=0)
train_y = train_data.Survived
feature = ['Pclass', 'Sex', 'Age', 'SibSp','Parch', 'Fare']
X = train_data[feature]
X = X.replace("male", "1")
X = X.replace("female", "0")
train_X, val_X, train_Y, val_Y = train_test_split(X, y)
leaf_notes = [10, 50, 100, 500]

def best_mae_found(train_X, train_Y, val_X, val_Y, max_leaf_nodes):
    Dtree_model = DecisionTreeRegressor(max_leaf_nodes=max_leaf_nodes, random_state = 1)
    Dtree_model.fit(train_X, train_Y)
    val_predice = Dtree_model.predict(val_X)
    mae = mean_absolute_error(val_Y, val_predice)
    return mae

all_leaf_notes = {max_leaf_nodes: best_mae_found(train_X, train_Y, val_X, val_Y, max_leaf_nodes) for max_leaf_nodes in leaf_notes}
best_leaf_nodes = min(all_leaf_notes, key=all_leaf_notes.get)
Dtree_model = DecisionTreeRegressor(max_leaf_nodes=best_leaf_nodes, random_state = 1)
Dtree_model.fit(train_X, train_Y)
val_predice = Dtree_model.predict(val_X)
mae = mean_absolute_error(val_Y, val_predice)

MAE

MAE是训练数据得到的绝对平均误差

预测

test_path = '/home/aistudio/data/data39090/test.csv'
test_data = pd.read_csv(test_path)
test_data = test_data.dropna(axis=0)
X_test = test_data[feature]
X_test = X_test.replace("male", "1")
X_test = X_test.replace("female", "0")
test_predice = Dtree_model.predict(X_test)  # 预测结果

结语

😐 并未使用随机森林,但为了更好的拟合,代码中寻找了决策树模型的最佳叶节点

此方法的排名与准确率

结合随机森林,设置叶节点和深度可能会更好。😃

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值