用python实现基于决策树的泰坦尼克号数据集回归分析
时间: 2023-11-27 19:51:16 浏览: 101
首先,我们需要导入一些必要的库,包括pandas用于数据处理,sklearn用于建模和评估模型。代码如下:
```
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
```
接下来,我们需要加载泰坦尼克号数据集,并进行一些基本的数据处理,例如删除无用的列、填充缺失的数据等。代码如下:
```
# 加载数据集
data = pd.read_csv('titanic.csv')
# 删除无用的列
data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
# 填充缺失的数据
data['Age'].fillna(data['Age'].median(), inplace=True)
data['Embarked'].fillna(data['Embarked'].mode()[0], inplace=True)
# 将分类变量转换为数值变量
data['Sex'] = pd.factorize(data['Sex'])[0]
data['Embarked'] = pd.factorize(data['Embarked'])[0]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.drop(['Survived'], axis=1), data['Survived'], test_size=0.2, random_state=42)
```
接下来,我们可以使用sklearn中的DecisionTreeRegressor类来训练决策树模型。代码如下:
```
# 训练决策树回归模型
model = DecisionTreeRegressor(random_state=42)
model.fit(X_train, y_train)
```
最后,我们可以使用测试集来评估模型的性能。代码如下:
```
# 使用测试集评估模型
y_pred = model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
print('MAE:', mae)
```
完整代码如下:
```
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
# 加载数据集
data = pd.read_csv('titanic.csv')
# 删除无用的列
data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
# 填充缺失的数据
data['Age'].fillna(data['Age'].median(), inplace=True)
data['Embarked'].fillna(data['Embarked'].mode()[0], inplace=True)
# 将分类变量转换为数值变量
data['Sex'] = pd.factorize(data['Sex'])[0]
data['Embarked'] = pd.factorize(data['Embarked'])[0]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.drop(['Survived'], axis=1), data['Survived'], test_size=0.2, random_state=42)
# 训练决策树回归模型
model = DecisionTreeRegressor(random_state=42)
model.fit(X_train, y_train)
# 使用测试集评估模型
y_pred = model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
print('MAE:', mae)
```
阅读全文