我有超过2000个用于人工神经网络的数据集。我已经应用了MLPRegressor,我的代码运行正常。但是为了测试,我想固定我的测试值,例如我有50个数据集。我想测试其中的前20个值。我该如何在代码中实现这一点?我使用了以下代码。
import pandas as pdimport matplotlib.pyplot as pltfrom sklearn.neural_network import MLPRegressordf = pd.read_csv("0.5-1.csv")df.head()X = df[['wavelength', 'phase velocity']]y = df['shear wave velocity']from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2)from sklearn.neural_network import MLPClassifierfrom sklearn.metrics import mean_absolute_errormlp = MLPRegressor(hidden_layer_sizes=(30,30,30))mlp.fit(X_train,y_train)
回答:
如果你希望结果可重现,你可以给train_test_split
传递一个固定的随机种子,这样每次运行时使用相同的训练/测试样本。使用train_test_split
的好处是可以轻松干净地选择训练/测试分割,而无需进一步的努力。
但是如果你坚持像你说的那样手动选择训练/测试分割,你可以这样做:
X_test, y_test = X[:20], y[:20] # 前20个样本用于测试X_train, y_train = X[20:], y[20:] # 剩余样本用于训练