为了账号安全,请及时绑定邮箱和手机立即绑定

使用 cross_val_scores 时性能更差,为什么?

使用 cross_val_scores 时性能更差,为什么?

扬帆大鱼 2021-11-16 10:34:21
我首先使用train_test_split来分离训练和测试数据,代码:X=LOG.iloc[:,:-3]y=LOG.iloc[:,-3]X_train,X_test,y_train, y_test=train_test_split(X,y)scaler=MinMaxScaler().fit(X)X_train_scaled=scaler.transform(X_train)X_test_scaled=scaler.transform(X_test)for thisalpha in [0.1,1,10]:    mlpreg=MLPRegressor(hidden_layer_sizes=(11,8,4),                    activation ="tanh",                    alpha = thisalpha,                    solver ="lbfgs",max_iter=20000).fit(X_train_scaled, y_train)    y_test_predict = mlpreg.predict(X_test_scaled)    y_train_predict= mlpreg.predict(X_train_scaled)    print "aipha = {}, train score= {:.4f}, test score = {:.4f}, iter_number={}, loss={:.4f}".format(        thisalpha,        mlpreg.score(X_train_scaled,y_train),        mlpreg.score(X_test_scaled,y_test),        mlpreg.n_iter_,        mlpreg.loss_)我得到这样的表现:aipha = 0.1,训练分数 = 0.7696,测试分数 = 0.7358aipha = 1,训练分数 = 0.7419,测试分数 = 0.7219aipha = 10,训练分数 = 0.6414,测试分数 = 0.6494然后我尝试使用交叉验证来测试相同的数据集,我得到的分数要低得多:X=LOG.iloc[:,:-3]y=LOG.iloc[:,-3]scaler= MinMaxScaler()X_scaled=scaler.fit_transform(X)clf=MLPRegressor(hidden_layer_sizes=(11,8,4),alpha= 1,solver="lbfgs",max_iter=20000)scores = cross_val_score(clf,X_scaled,y,cv=3)     print scorescross_val_score 是:[0.04719619 0.36858483 0.36004186]
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我找到了问题所在。我的数据实际上是以“堆栈”的方式放置的:所有类 one 在顶部,然后类 n 在底部。所以它给了我奇怪的结果。我是这样改代码的,需要先把数据打乱,然后再用交叉验证的方法。


kfold = KFold(n_splits=3,shuffle=True,random_state=0)


X_scaled=scaler.fit_transform(X)

clf=MLPRegressor(hidden_layer_sizes=(11,8,4),alpha= 1,solver="lbfgs",max_iter=20000)

scores = cross_val_score(clf,X_scaled,y,cv=kfold)


print scores

我得到的分数是这样的:


[0.68697805 0.70411961 0.69466066]


查看完整回答
反对 回复 2021-11-16
?
绝地无双

TA贡献1946条经验 获得超4个赞

查看您的代码,也许这是因为您activation="tanh"在运行交叉验证模型时遗漏了。否则,我能看到的唯一真正区别是,您在第一种情况下测试了 25% 的数据,而在第二种情况下则为 33%。这不会像您展示的那样显着影响准确性。

请注意,您不应使用验证/测试集来拟合缩放器,因为这会将模型(间接)暴露给您的测试数据。这在第一种情况下很容易解决,但在使用cross_val_score.


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 492 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信