机器学习中的测试和训练数据

Testing and training data in machine learning

我有 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)

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

但是如果你坚持要像你说的那样手动选择train/test拆分,你可以这样做:

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

将 numpy 的随机种子固定为 48 或其他值

np.random.seed(48)

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