利用ExtraTreesRegressor进行回归,发现训练集上的R^2接近1,而在交叉验证集上的R^2只有0.6左右,而在测试集上的R^2也接近1
def model(X,y,regression,**kwargs):
t0 = time.time()
kf = KFold(5,shuffle = True,random_state = 1)
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.3,random_state = 1)
reg = regression(**kwargs)
reg.fit(X,y)
r2 = cross_val_score(reg,X_train,y_train,scoring = 'r2',cv = kf).mean()
pred = reg.predict(X_test)
r2_t = r2_score(y_test,pred)
t1 = '%.3f s' %(time.time() - t0)
return r2,t1,r2_t
model(X,y,ETR)
(0.6136022030545359, '142.728 s', 0.9833922526081965)
如果训练集和交叉验证集上的R^2差距过大,那么模型在测试集上表现应该也不佳?
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。