我想根据以下数据集中的其他参数,在“天然气开放”一栏中预测所有合同月份的天然气价格。我使用的是XG Boosting算法,在输出时,我只能看到25个预测值,无法解释它们将应用于哪个合同月。为了安全起见,我使用KFold验证,而不是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.482494的输出。。我的第一个问题是缩短月份和第二个月,依此类推,第二个问题是如何为所有行生成相同的输出。截至2027年3月1日的合同月数总计为100行
多谢各位
目前没有回答
相关问题 更多 >
编程相关推荐