1.利用随机森林求出Titanic数据集的训练集及测试集预测准确率。 2.跑出影响因素的重要性排序图。 3.跑出随机森林收敛图。 4.将代码列出。
时间: 2024-02-29 14:52:35 浏览: 41
以下是利用Python的scikit-learn库实现随机森林模型的代码:
```python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取数据
data = pd.read_csv('titanic.csv')
# 数据预处理
data = data.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
data = pd.get_dummies(data)
data = data.fillna(data.mean())
# 划分训练集和测试集
X = data.drop('Survived', axis=1)
y = data['Survived']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 预测测试集
y_pred = rf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Random Forest Accuracy:', accuracy)
# 输出影响因素的重要性排序图
importances = pd.DataFrame({'feature': X_train.columns, 'importance': rf.feature_importances_})
importances = importances.sort_values('importance', ascending=False)
print(importances)
# 输出随机森林收敛图
import matplotlib.pyplot as plt
plt.plot(rf.estimators_[0].predict(X_test))
plt.plot(y_test)
plt.legend(['Prediction', 'Ground Truth'])
plt.show()
```
解释一下代码的每一部分:
1. 首先读取数据,并进行一些预处理,包括删除无用的列、对离散变量进行独热编码、填充缺失值等。
2. 利用train_test_split函数将数据集划分为训练集和测试集。
3. 构建随机森林模型,其中n_estimators参数指定了决策树的数量。
4. 对测试集进行预测,并计算预测准确率。
5. 输出影响因素的重要性排序图,即每个特征对预测结果的重要性。
6. 输出随机森林收敛图,即第一个决策树对测试集的预测结果和真实结果的比较。
阅读全文