You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scikit-learn 1.4.2中MLPClassifier无best_validation_score_属性问题咨询

问题原因及解决方案

在scikit-learn 1.4.0及后续版本中,MLPClassifier的早停相关属性发生了命名变更:原best_validation_score_被重命名为best_score_,这是官方为统一API规范做出的调整——让所有支持早停的模型(如SGDClassifier、GradientBoostingClassifier等)都使用一致的best_score_属性存储最佳验证分数,避免不同模型使用差异化的属性名。

你的代码在1.4.2版本中报错,就是因为该版本已移除旧的best_validation_score_属性,替换为best_score_。

修正示例

错误调用(触发AttributeError):

from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
clf = MLPClassifier(early_stopping=True, random_state=42)
clf.fit(X, y)
print(clf.best_validation_score_)

正确调用(适配1.4.2版本):

from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
clf = MLPClassifier(early_stopping=True, random_state=42)
clf.fit(X, y)
print(clf.best_score_)

如果需要兼容新旧版本,可增加版本判断逻辑:

import sklearn
from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
clf = MLPClassifier(early_stopping=True, random_state=42)
clf.fit(X, y)

if sklearn.__version__ >= "1.4.0":
    print(clf.best_score_)
else:
    print(clf.best_validation_score_)

内容的提问来源于stack exchange,提问作者Antonio Piemontese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:42:02