通过python自带的xgboost 进行预测

# -*- coding: utf-8 -*-
"""
Created on Fri Aug 19 15:25:35 2022

@author: 123
"""

import xgboost as xgb
import numpy
import pandas as pd
traindata = pd.read_excel('E:/NREL/solarforecast/2d/train_2inimage.xlsx')
validdata = pd.read_excel('E:/NREL/solarforecast/2d/valid_2inimage.xlsx')
testdata = pd.read_excel('E:/NREL/solarforecast/2d/test_2inimage.xlsx')
def load_data(data):
   l=len(data)
   data = data.values.tolist()
   in_seq=[]
   out_seq=[]
   for i in range(l):
        inseq = []
        outseq = []
        indata=data[i]
        outseq.append(indata[-1])
        for j in range(0,len(indata)-5):
            inseq.append(indata[j])
        in_seq.append(inseq)
        out_seq.append(outseq)
   in_seq=numpy.array(in_seq)
   out_seq=numpy.array(out_seq)
   return out_seq, in_seq
y_train,x_train=load_data(traindata)
y_valid,x_valid=load_data(validdata)
y_test,x_test=load_data(testdata)
dtrain=xgb.DMatrix(x_train,label=y_train)
dvalid=xgb.DMatrix(x_valid,label=y_valid)
xtest=xgb.DMatrix(x_test)
#GPU使用方法
# param['gpu_id'] = 0
# param['tree_method'] = 'gpu_hist'
params={'booster':'gbtree',
	    'nthread':4,
	    'seed':1,
	    'eta': 0.01,
	    'gamma':0.1,
	    'min_child_weight':1.1,
	    'max_depth':8,
	    'lambda':10,
	    'subsample':0.7,
	    'colsample_bytree':0.7,
	    'colsample_bylevel':0.7,
	    'tree_method':'exact'
	    }
evallist=[(dtrain,'train'),(dvalid,'eval')]
num_round=1000
model=xgb.train(params,dtrain,num_round,evallist,early_stopping_rounds=10)
y_pred = model.predict(xtest)
y_pred=numpy.array(y_pred)
loss=(y_pred-y_test.flatten())**2##注意数据格式问题
loss=loss.mean()
print(loss)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值