scikit-learn - GridsearchCV:特征选择是如何工作的?

标签 scikit-learn gridsearchcv

我已经构建了一个 GridsearchCV 管道,它似乎运行良好。

但是,我似乎无法(经过大量阅读)找到一种方法来正确提取所选功能。

这是否意味着每当我尝试运行“最佳模型”时,该模型都会假设传入用于预测的特征集完全相同(即使是列中特征的顺序)?

有没有更好的方法来实现这一点,否则当 GridsearchCV 说我只需要(例如)5 个功能时,我将不得不在使用实时数据时重建整个功能集。

我在想也许我会用 GridsearchCV 输出的超参数重建分类器,但这似乎有点复杂?

最佳答案

Does this mean that whenever I attempt to run the "best model", the model assumes that the feature set passed in for prediction is exactly the same (even in the sequence of features in the columns)?

是的,每个 sklearn 估计器都会假设您将传递与训练时相同的输入格式,特别是您甚至必须传递最终被丢弃的特征。

缩小输入占用空间的最佳方法是仅针对相关功能重新调整管道的版本(无需选择等);您可以跳过重新拟合模型步骤,只要您可以确定到达模型的特征顺序是相同的。 (我曾考虑过编写一个方便的函数来尝试在不重新调整东西的情况下实现自动化,但这并不简单,而且很容易出错,从而默默地破坏模型。)

如果问题只是生产中未使用的功能的生成,您也可以为它们弥补值;由于模型不使用它们,因此它们是否是真实值并不重要,只是合理的值。


您第一个问题的一个很好的答案已被删除,所以我也回答一下:

However, I can't seem to (after much reading) find a way to properly extract the features selected.

可以检查网格搜索的 best_estimator_(假设您重新调整)管道中选定的功能。 (如果在到达功能选择步骤之前您的功能在管道中发生了更改,这可能会有些棘手。)

关于scikit-learn - GridsearchCV:特征选择是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73401405/

相关文章:

python - ValueError : Expected n_neighbors <= 1. Got 5 -Scikit K 最近分类器

python - 内核 GridSearchCV 参数

scikit-learn - 如何使用 GridSearchCV 预测每次迭代的 X_test?

python-3.x - GridSearching LSTM 网络中的问题 - Batch_size 问题

python - 值错误 : cannot copy sequence with size 821 to array axis with dimension 7

python - Scikit 学习错误消息 'Precision and F-score are ill-defined and being set to 0.0 in labels'

scikit-learn - 模块未找到错误 : No module named 'sklearn.utils._typedefs'

machine-learning - 如何公平地比较基线和 GridSearchCV 结果?

python - Jupyter Notebook 中的 GridSearchCV 进展

python - sklearn 中的 predict_proba 如何产生两列?它们的意义是什么?