我在这里有以下代码:
我正在尝试从数据集中检索20个最佳特征,然后使用随机森林分类器测试交叉验证的分数,但是一旦执行SelectKBest,我就会收到输出:X_train_selected和X_test_selected,但对我而言,立即实现的方法并不立刻显而易见我将其传递给cross val评分功能。
答案 0 :(得分:-1)
您不需要为cross_val_score分开训练和测试数据。函数本身只是在照顾它。传递功能集时,您需要传递完整的功能集,而不是X_train
和X-test
首先分隔目标变量
target = df['result']
然后运行selectKbest并像您一样获取列名,但是这次不是将X拆分为训练和测试,而是像这样将它们作为单个数据集传递
X = clean_df[colnames_selected]
然后将X
和target
传递到cross_val_score
scores = cross_val_score(forest, X, target, cv=10)
print("Reduced features: mean of the scores: {:.2f}".format(scores.mean()))
该函数的重点是对数据集执行交叉验证,并使用提供的估算器返回分数。
您还可以使用管道来简化like this example的整个过程。