2

我有 2000 多个 ANN 数据集。我已经在其中应用了 MLPRegressor。我的代码工作正常。但是对于测试,我想修复我的测试值,例如我有 50 个数据集。从那我想测试前 20 个值。如何在代码中解决这个问题?我使用了以下代码。

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.neural_network import MLPRegressor

df = 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_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2)

from sklearn.neural_network import MLPClassifier
from sklearn.metrics import mean_absolute_error

mlp = MLPRegressor(hidden_layer_sizes=(30,30,30))

mlp.fit(X_train,y_train)
4

2 回答 2

1

如果您希望获得可重现的结果,您可以传递train_test_split一个固定随机种子,以便在每次运行中使用相同的训练/测试样本。使用的好处train_test_split是无需进一步努力就可以选择干净整洁的训练/测试拆分。

但是如果你坚持像你说的那样手动选择训练/测试分割,你可以这样做:

X_test, y_test = X[:20], y[:20]  # first 20 samples for test
X_train, y_train = X[20:], y[20:]  # rest of samples for train
于 2019-09-15T13:42:09.847 回答
0

将 numpy 的随机种子修复为 48 或其他

np.random.seed(48)

这将每次生成相同的拆分。并使用 testsize 来固定拆分的大小

于 2019-09-15T15:44:03.200 回答