Python:如何在不同的时间训练相同的模型?

时间:2018-02-07 16:02:14

标签: python machine-learning scikit-learn neural-network

我有一个小数据集,我想尝试使用Multi-layer Perceptron regressor中的sklearn来预测相同变量的值。

这就是我在做的事情:

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


X_train, X_test, y_train, y_test = train_test_split(X, Y)
scaler  = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test  = scaler.transform(X_test)

mlp    = MLPRegressor(hidden_layer_sizes=(10,10))
mlp    = mlp.fit(X_train,y_train)
test_y = mlp.predict(X_test)

现在,训练集由100个例组成。我想要做的是在7525中将训练集拆分四次,以便使用4不同的数据集训练相同的模型。

我正在做的事情:

c1 = 0
c2 = 25
for i in range(0,4):
    xt = X_train[c1:c2]
    yt = np.setdiff1d(X_train, xt)
    c1 = c2 + 1
    c2 = c2 + 25
    mlp = mlp.fit(xt ,yt)

2 个答案:

答案 0 :(得分:0)

您应该得到一个错误,因为您在上一次迭代中访问X_train超出了范围。当然,假设X_train只有100个样本。

以以下形式myArray[a:b]访问数组意味着我要检索从a到但不包括b的元素。

因此,您需要更改此行:

c1 = c2 + 1

对此:

c1 = c2

看看documentation,了解如何访问numpy数组。

答案 1 :(得分:0)

{{1}}

代码在注释中说明。我们将数据分为训练数据和隐藏测试数据。我们对火车数据进行简历4折。如下图所示。

enter image description here