我写了一个函数,它将训练数据帧和测试数据帧作为输入。
在这个函数中,我创建了三个变量train,test和target
def rem_miss_vals(trainDF, testDF):
trainDF = trainDF[np.isfinite(trainDF)]
testDF = testDF[np.isfinite(testDF)]
train = trainDF.values
train = train[0::, 1:]
target = train[0::, 0]
test = testDF.values
return train, test, target
我想在下面的功能中使用火车,测试和目标
def get_variable_rankings(trainingset, targetset, testset):
logit = linear_model.LogisticRegression()
logreg = RFE(logit, 1)
logreg.fit(trainingset, targetset)
logitPredictions = logreg.predict(testset)
variablerankings = logreg.ranking_
variablerankings = variablerankings.tolist()
return variablerankings
实际代码:
当我在main()函数中调用这些函数时,我收到错误:未定义train
rem_miss_vals(trainDF, testDF)
get_variable_rankings(train, target, test)
在rem_miss_vals()中,我清楚地归还了它们,但我不明白我无法在get_variable_rankings()函数中使用火车,目标和测试
有人可以帮忙吗?
答案 0 :(得分:3)
您必须将返回值分配给某些变量,以便它们在范围内:
train, test, target = rem_miss_vals(trainDF, testDF)
variablerankings = get_variable_rankings(train, target, test)
或者,将它们直接映射到下一个函数:
variablerankings = get_variable_rankings(*rem_miss_vals(trainDF, testDF))