我已经从 sklearn 训练了一个
SequentialFeatureSelector
,现在对它生成的最佳模型(基于给定的评分方法)感兴趣。是否有一种可能的方法来提取参数并使用它们生成所使用的模型?
我已经看到
get_params()
存在一个 SequentialFeatureSelector
函数,但我不明白如何解释输出并检索最佳估计器。
该模型的主要结果是决定选择哪些特征。您可以通过多种方式访问该信息。假设您安装了
selector=SequentialFeatureSelector(...).fit(...)
。
selector.support_
是一个布尔向量,其中 True
表示它选择了该特征。如果你一开始有 5 个特征,并告诉它选择 2 个,那么如果它选择了第一个和最后一个特征,向量将是 [True, False, False, False, True]
。
您可以使用
selector.get_support()
获得与上面相同的输出。如果您想要索引而不是布尔向量,则可以使用 selector.get_support(indices=True)
- 在本例中它将返回 [0, 4]
,指示特征编号 0 和特征编号 3。
获取特征名称(仅适用于向模型提供数据框的情况):
selector.feature_names_in_[selector.support_]
拟合选择器后,如果希望它剔除未选择的特征,可以使用
selector.transform(X_test)
。 .transform(X_test)
会将 already-fitted 选择器应用于提供的数据。在此示例中,如果 X_test
为 100 x 5,那么它将返回 100 x 2 版本,其中仅保留从初始 .fit()
确定的特征。