python中的线性回归小批量梯度下降:按批量大小分割训练和验证数据

python中的线性回归小批量梯度下降:按批量大小分割训练和验证数据,python,linear-regression,mini-batch,batchsize,Python,Linear Regression,Mini Batch,Batchsize,我试图按批量大小划分培训和验证数据,并找到验证rmse。训练特征数据的大小为11000。验证要素数据的大小为2750。但是,当我在for循环中使用zip函数时。它将for循环限制在较小的范围内,即2750 有人知道我怎么解决这个问题吗?我被困了两天了 用于范围内的历元(0,最大迭代次数,1): 对于zip中的i,j(范围(0,训练特征数据.shape[0],批量大小),范围(0,验证特征数据.shape[0],批量大小)): training_feature_data_i=training_fe

我试图按批量大小划分培训和验证数据,并找到验证rmse。训练特征数据的大小为11000。验证要素数据的大小为2750。但是,当我在for循环中使用zip函数时。它将for循环限制在较小的范围内,即2750

有人知道我怎么解决这个问题吗?我被困了两天了

用于范围内的历元(0,最大迭代次数,1):
对于zip中的i,j(范围(0,训练特征数据.shape[0],批量大小),范围(0,验证特征数据.shape[0],批量大小)):
training_feature_data_i=training_feature_data[i:i+批量大小]
培训目标数据=培训目标数据[i:i+批量大小]
验证特征数据=验证特征数据[j:j+批量大小]
验证目标数据=验证目标数据[j:j+批量大小]

由于培训和验证在这里没有任何关系(索引i似乎不会影响验证,而j不会影响培训),因此单独生成小批量更为合理。这就是托马斯·斯基拉奇在评论中所说的。这里有一个关于如何重新格式化代码的建议

for epoch in range (0, maximum_iterations, 1):
  for i in range(0, training_feature_data.shape[0], batch_size):
     training_feature_data_i = training_feature_data[i:i+batch_size]
     training_target_data_i = training_target_data[i:i+batch_size]
  for j in range(0, validation_feature_data.shape[0], batch_size):
     validation_feature_data_j = validation_feature_data[j:j+batch_size]
     validation_target_data_j = validation_target_data[j:j+batch_size]

由于这里的训练和验证没有任何关系(索引i似乎不影响验证,而j不影响训练),因此单独生成小批量更为合理。这就是托马斯·斯基拉奇在评论中所说的。这里有一个关于如何重新格式化代码的建议

for epoch in range (0, maximum_iterations, 1):
  for i in range(0, training_feature_data.shape[0], batch_size):
     training_feature_data_i = training_feature_data[i:i+batch_size]
     training_target_data_i = training_target_data[i:i+batch_size]
  for j in range(0, validation_feature_data.shape[0], batch_size):
     validation_feature_data_j = validation_feature_data[j:j+batch_size]
     validation_target_data_j = validation_target_data[j:j+batch_size]

您可以将第二个for循环拆分为两个循环,一个用于训练数据,另一个用于验证data@ThomasSchillaci谢谢!您可以将第二个for循环拆分为两个循环,一个用于训练数据,另一个用于验证data@ThomasSchillaci谢谢!