随机森林预测的python代码,多个特征变量,一个预测结果,输入是excel表,包括验证集和训练集比例,并对新的数据文件进行预测并输出预测结果excel表格以及精度和混淆矩阵图
时间: 2023-12-12 21:04:55 浏览: 105
好的,以下是一个基于随机森林的分类模型的Python代码,可以用于多个特征变量和一个预测结果的情况:
```python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
# 读取数据
data = pd.read_excel('data.xlsx')
# 分割训练集和验证集
train_data = data.sample(frac=0.8, random_state=1)
test_data = data.drop(train_data.index)
# 定义特征变量和目标变量
features = ['feature1', 'feature2', 'feature3']
target = 'target'
# 训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=1)
rf.fit(train_data[features], train_data[target])
# 在验证集上进行预测并计算精度和混淆矩阵
pred = rf.predict(test_data[features])
accuracy = accuracy_score(test_data[target], pred)
confusion_mat = confusion_matrix(test_data[target], pred)
print('Accuracy:', accuracy)
print('Confusion matrix:')
print(confusion_mat)
# 读取新数据文件并预测结果
new_data = pd.read_excel('new_data.xlsx')
new_pred = rf.predict(new_data[features])
new_data['predicted_target'] = new_pred
new_data.to_excel('predicted_results.xlsx', index=False)
```
这段代码假设Excel表格中的特征变量为'feature1','feature2','feature3',目标变量为'target'。在训练时,我们使用80%的数据作为训练集,其余的20%作为验证集。我们采用100个决策树来构建随机森林模型。在验证集上完成预测后,我们计算了模型的精度和混淆矩阵。最后,我们将新的数据文件读取到数据框中,并使用训练好的模型进行预测。预测结果将存储在Excel表格'predicted_results.xlsx'中。
阅读全文