精度测试和培训

数据挖掘 机器学习 深度学习
2022-02-19 06:58:46

我有 102 个观察结果。我为数据集制作了标准比例。我找到了准确度训练和准确度测试值,但训练分数为 1.00,测试分数为 -217.541。我已经运行了 MLPRegressor 分数。负准确性测试分数是什么意思?

FileX_train, FileX_test,FileY_train,FileY_test = train_test_split(FileX,FileY,test_size=0.33, random_state=0)

sc = StandardScaler()
X_train = sc.fit_transform(FileX_train)
X_test = sc.transform(FileX_test)

sc = StandardScaler()
Y_train = sc.fit_transform(FileY_train)
Y_test = sc.transform(FileY_test)

from sklearn.neural_network import MLPRegressor
from sklearn.metrics import accuracy_score
mlp = MLPRegressor(solver='lbfgs',activation='tanh', hidden_layer_sizes=(100,), max_iter=1000000000, learning_rate='constant')
mlp.fit(X_train, Y_train.ravel())
print('Accuracy training : {:.3f}'.format(mlp.score(X_train, Y_train)))
print('Accuracy testing : {:.3f}'.format(mlp.score(X_test, Y_test)))

结果:

精度培训:1.000 精度测试:-217.541

1个回答

您实际上没有使用过accuracy_score,sklearn 回归器的默认记分器是 R^2:
https ://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html#sklearn.neural_network.MLPRegressor.score

R^2 的负值通常意味着非常不合适:
https ://stats.stackexchange.com/q/12900/232706