随机森林预测的python代码,多个特征变量,一个预测结果,输入是excel表,并对新的数据文件进行预测,包括精度混淆矩阵图
时间: 2023-12-06 16:05:45 浏览: 77
随机森林代码,用于特征筛选
以下是随机森林预测的Python代码,适用于多个特征变量、一个预测结果的情况:
```python
# 导入需要使用的库
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt
# 读取Excel表格
data = pd.read_excel('data.xlsx')
# 定义自变量和因变量
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 定义随机森林分类器
classifier = RandomForestClassifier(n_estimators=100, random_state=0)
# 在训练集上训练分类器
classifier.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = classifier.predict(X_test)
# 计算预测精度并输出
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
# 计算混淆矩阵并绘制热力图
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm/np.sum(cm), annot=True, fmt='.2%', cmap="Blues", annot_kws={"size": 14})
plt.show()
# 读取新的数据文件并进行预测
new_data = pd.read_excel('new_data.xlsx')
X_new = new_data.iloc[:, :-1].values
y_new_pred = classifier.predict(X_new)
# 输出预测结果
print("Predicted result:", y_new_pred)
```
其中,`data.xlsx`是包含训练数据的Excel表格,`new_data.xlsx`是包含新数据的Excel表格,代码中会对新数据进行预测,并输出预测结果。热力图中的精度和混淆矩阵图会在代码中自动绘制。
阅读全文