Ale*_*lex 8 python feature-selection scikit-learn
当尝试对 sklearn 中的某些数据使用特征选择和 f_classif(方差分析测试)时,我收到以下警告消息:
C:\Users\Alexander\Anaconda3\lib\site-packages\sklearn\feature_selection\univariate_selection.py:113:UserWarning:功能...是不变的。用户警告)
警告消息指示的特征是恒定的,显然 p 值为 0。我无法找到有关导致此警告的原因的任何信息。此特定函数的 github 文件位于:https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/feature_selection/univariate_selection.py
任何帮助将不胜感激,谢谢。
小智 8
您可以通过使用索引作为 X 中列数组的索引来获得该功能:
X_train.columns[yourindex]
然后您可以手动删除此特征,也可以使用 VarianceFilter 删除所有零方差特征:
from sklearn.feature_selection import VarianceThreshold
constant_filter = VarianceThreshold(threshold=0)
constant_filter.fit(X_train)
constant_columns = [column for column in X_train.columns
if column not in
X_train.columns[constant_filter.get_support()]]
X_test = constant_filter.transform(X_train)
X_test = constant_filter.transform(X_test)
for column in constant_columns:
print("Removed ", column)
Run Code Online (Sandbox Code Playgroud)
您必须确定训练数据帧上的零方差特征,因为您的整体 df 可能多次包含该特征。然后从两个 dfs 中删除该特征。
| 归档时间: |
|
| 查看次数: |
7152 次 |
| 最近记录: |