Python 在模型类上循环训练模型并按模型类更改数据帧名称
我正在尝试自动化一个培训管道,并且在更改模型类时重命名输入数据帧时遇到了一些问题Python 在模型类上循环训练模型并按模型类更改数据帧名称,python,loops,dataframe,pipeline,Python,Loops,Dataframe,Pipeline,我正在尝试自动化一个培训管道,并且在更改模型类时重命名输入数据帧时遇到了一些问题 sample_train = [9] sample_test = [18] model_class = [0] for i in sample_train: for j in model_class: # Define the training datasets -Filter the datasets with model selections trainX_M[j]
sample_train = [9]
sample_test = [18]
model_class = [0]
for i in sample_train:
for j in model_class:
# Define the training datasets -Filter the datasets with model selections
trainX_M[j] = mldata_pd[(mldata_pd.sample_id == i) & (mldata_pd.training_set_band == j)].drop(
['conv_gv_band', 'sample_id', 'training_set_band'], axis=1)
trainy_M[j] = mldata_pd[(mldata_pd.sample_id == i) & (
mldata_pd.training_set_band == j)].iloc[:, mldata_pd.columns == 'conv_gv_band']
trainX_M0, testX, trainy_M0, testy = train_test_split(trainX_M0, trainy_M0,
test_size=0.2,
random_state=42)
当model\u class=0时,我希望有trainX\u M0
,但收到错误:
名称错误:未定义名称“trainX_M”
您的变量是trainX_M,而不是trainX_M0,cahgne to
trainX_M0[j] = mldata_pd[(mldata_pd.sample_id == i) & (mldata_pd.training_set_band == j)].drop(['conv_gv_band','sample_id','training_set_band'], axis=1)
或者在列表trainX_M和df中附加每个类的所有矩阵您尝试在trainX_M[j]=
中的位置j处设置值,与trainY_M[j]=
相同,并且从错误中可以看出数组trainX_M
以前没有定义。在你贴的代码里剪了我也看不到一个定义。你确定有一个而且拼写相同吗
如果没有,您可以这样初始化数组trainX\u M(我猜大小与model\u类相同):
trainX_M = [None] * len(model_class)