python语言写一个用读取exce数据表,把数据表第2,7,9列作为输入,29列作为输出,用随机森林算法输出进行预测,把读取数据的前百分之90作为训练集,训练多次不断优化提高模型性能,后百分之10作为测试集,并画出实际与预测曲线。
时间: 2024-05-10 17:18:45 浏览: 82
好的,以下是一份基于Python语言实现的代码:
```python
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
# 读取Excel数据表
data = pd.read_excel("data.xlsx")
# 筛选出需要的数据列
X = data.iloc[:, [1, 6, 8]].values
y = data.iloc[:, 28].values
# 划分训练集和测试集
train_size = int(len(X) * 0.9)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 随机森林回归模型
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# 训练集结果
y_train_pred = model.predict(X_train)
print("Train MSE:", mean_squared_error(y_train, y_train_pred))
# 测试集结果
y_test_pred = model.predict(X_test)
print("Test MSE:", mean_squared_error(y_test, y_test_pred))
# 绘制实际与预测曲线
plt.plot(y_test, label="True")
plt.plot(y_test_pred, label="Predicted")
plt.legend()
plt.show()
```
这份代码首先读取了名为“data.xlsx”的Excel数据表,然后筛选出第2、7、9列作为输入特征(X),第29列作为输出(y)。接着,将前90%的数据作为训练集,剩下的10%作为测试集。使用随机森林回归模型进行训练,并分别计算出训练集和测试集的均方误差(MSE)。最后,绘制出测试集的实际值和预测值曲线,以便直观地了解模型的性能表现。
阅读全文