如何确定在scikitlearn MLPrepressor中培训和测试的是哪一个?

2024-10-02 16:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据集(训练和测试),它们都有完全相同的特性和标签列,只是内部不同(数字和值)。我的代码是:

import pandas as pd
import numpy as np 

from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPRegressor

datatraining = pd.read_csv("datatrain.csv")

datatesting = pd.read_csv("datatest.csv")

columns = ["Full","Id","Id & PPDB","Id & Words Sequence","Id & Synonyms","Id & Hypernyms","Id & Hyponyms"]

labeltrain = datatraining["Gold Standard"].values
featurestrain = datatraining[list(columns)].values


labeltest = datatesting["Gold Standard"].values
featurestest = datatesting[list(columns)].values

X_train = featurestrain
y_train = labeltrain

X_test = featurestest
y_test = labeltest

mlp = MLPRegressor(solver='lbfgs', hidden_layer_sizes=50, max_iter=1000, learning_rate='constant')

mlp.fit(X_train, y_train)

print('Accuracy training : {:.3f}'.format(mlp.score(X_train, y_train)))
print

mlp.fit(X_test, y_test)

print('Accuracy testing : {:.3f}'.format(mlp.score(X_test, y_test)))
print

我仍然怀疑我的代码是否能正确地找到训练和测试分数,因为我看不到区分函数来确定哪一个是训练的,哪个是测试的。我看到他们都在训练,或者都在测试。 谁能解释一下如何确定它?或者我的代码已经正确了吗?谢谢


Tags: columnscsv代码fromtestimportidas
1条回答
网友
1楼 · 发布于 2024-10-02 16:23:28

一旦你的模型适合于培训,你就不应该再在测试中适合它了。相反,您应该使用测试集来评估模型的性能。因此,您需要删除该行

mlp.fit(X_test, y_test)

从你的代码。然后使用行

^{pr2}$

您将能够在看不见的数据上评估模型的性能。在

相关问题 更多 >