sklearn 是不是支持动态数据的特征选择?

Posted

技术标签:

【中文标题】sklearn 是不是支持动态数据的特征选择?【英文标题】:Does sklearn supports feature selection on dynamic data?sklearn 是否支持动态数据的特征选择? 【发布时间】:2020-08-10 22:12:10 【问题描述】:

sklearn包含不同特征选择方法的实现(filter/wrapper/embedded).

所有为静态系统设计的方法。

sklearn 是否支持动态数据的特征选择? (随时间变化的数据)

在动态数据中,我们需要提高特征选择的效率,才能更有效。

我在 IEEE 上找到了一些方法(特征选择的增量方法), 那么sklearn 或其他开源库是否有任何实现?

【问题讨论】:

【参考方案1】:

难道您不能按计划重新运行您的流程并动态加载您的数据吗?我不认为因变量会发生变化,但我认为自变量可能会有所变化。

#1)  load your dataframe
#2)  copy your target variable into a new dataframe

y = df[['SeriousDlqin2yrs']]

#3)  drop your target variable

x = df[df.columns[df.columns!='SeriousDlqin2yrs']]

最后,运行这个。

from sklearn.ensemble import RandomForestClassifier
features = np.array(x)
clf = RandomForestClassifier()
clf.fit(x, y)
# from the calculated importances, order them from most to least important
# and make a barplot so we can visualize what is/isn't important
importances = clf.feature_importances_
sorted_idx = np.argsort(importances)
padding = np.arange(len(features)) + 0.5
plt.barh(padding, importances[sorted_idx], align='center')
plt.yticks(padding, features[sorted_idx])
plt.xlabel("Relative Importance")
plt.title("Variable Importance")
plt.show()

我刚刚试了一下,得到了这个结果。

如果您希望获得非数字特征,您将需要使用一种热编码来处理这些。

import pandas as pd
pd.get_dummies(df)

http://queirozf.com/entries/one-hot-encoding-a-feature-on-a-pandas-dataframe-an-example

【讨论】:

以上是关于sklearn 是不是支持动态数据的特征选择?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn学习:特征提取

机器学习实战基础(十八):sklearn中的数据预处理和特征工程特征选择 之 Wrapper包装法

sklearn-特征工程之特征选择

sklearn特征选择和分类模型

Jvm(68),方法调用----动态语言的支持

在拥有分类数据时,使用 Sklearn 随机森林进行特征选择并没有给我预期的结果