python - 梯度提升 - 基于月份的价格预测
问题描述
我想要达到的目标。
我想根据下面数据集中所有合约月份的其他参数来预测“NG Open”列下的天然气价格。我正在使用 XG Boosting 算法,不知何故,在输出中我只能看到预测的 25 个值,并且无法解释它们将适用于哪个合约月份。我使用 KFold Validation 来保证安全,而不是 train_test_split
Contracts NG Open NGHigh NGLow NGLast NGVolumes
2018-12-01 3.907 4.384 3.907 4.272 0
2019-01-01 3.917 4.408 3.917 4.291 264295
2019-02-01 3.800 4.267 3.785 4.148 155303
2019-03-01 3.515 4.007 3.496 3.865 51299
2019-04-01 2.735 2.829 2.704 2.793 73226
2019-05-01 2.632 2.691 2.602 2.667 54540
2019-06-01 2.638 2.719 2.634 2.692 34269
代码。
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
dataset = pd.read_excel("C:\Futures\Futures.xls")
dataset['Contracts'] = dataset['Contracts'].str.rstrip('(E)')
dataset['Contracts'] = pd.to_datetime(dataset['Contracts'])
dataset = dataset.set_index('Contracts')
dataset1 = dataset.values
X = dataset1[:,0:5]
y = dataset1[:,0]
gbrt=GradientBoostingRegressor(n_estimators=100)
kfold = KFold(n_splits=10, random_state=7, shuffle = True)
results = cross_val_score(gbrt, X, y, cv=kfold)
print("Accuracy: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100))
gbrt.fit(X_train, y_train)
predictions = gbrt.predict(X_test)
print(predictions)
代码输出
准确度:99.16% (1.51%)
[2.90288328 2.48242494 2.63815259 2.56852281 2.56852281 2.74960132 2.58107653 2.80135512 2.67153137 3.54629023 2.50640456 2.5038906 3.05384458 2.55023831 2.85925744 2.73849325 2.74080839 2.79646487 2.89086965 2.52839402 2.63251226 2.85012468 2.87403014 2.52685035 2.73180843]
如何将 2.9028838,2.48242494.. 的输出与合约月份和第二个月等相关联是我的第一个问题,第二个问题是如何为所有行生成相同的输出。总行数为 100,合同月份截至 2027 年 3 月 1 日
谢谢你。
解决方案
推荐阅读
- nginx - 用于设置 TLS 连接的 engine_ssl pkcs11 的 Nginx 配置
- asp.net-core - Azure 上的 Reactjs.net 错误:ReactJS.NET 尚未正确初始化
- php - MySQL - 如果由 CLI 调用,存储过程返回 null 但导致工作台
- r - 将具有多个根的 XML 转换为 DataFrame
- dataweave - Mule 4/DW 2.0:在数组对象内迭代数组
- git - 带有代理的 git clone ssh
- python - 如何随机选择位置以生成受限于范围的唯一数字列表
- python - 正则表达式正确分组但 python 错误地插入值?
- azure - 如何在 Azure 上部署 Vue(前端)和 Spring Boot(后端)应用程序(首选通过 Azure Pipelines)?
- rotation - 如何使用 SwiftUI 更新不同的视图?