在对一组数据运行Scikit Learn的方差阈值后,它删除了几个特性。我觉得我在做一些简单但愚蠢的事情,但我想保留其余功能的名称。以下代码:
定义变量阈值选择器(数据):
选择器=方差阈值(.5)
选择器.fit(数据)
选择器=(pd.DataFrame(selector.transform(data)))
返回选择器
x=方差阈值选择器(数据)
打印(x)
更改以下数据(这只是行的一小部分):
幸存的P类性别年龄SibSp烤焦废话
0 3 1 22 1 0 0
1 1 2 38 1 0 0
1 3 2 26 0 0 0
进入这个(同样只是行的一小部分)
0 1 2 3
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
使用get_support方法,我知道它们是Pclass、Age、Sibsp和Parch,因此我希望返回类似以下内容的内容:
p类年龄Sibsp Parch
0 3 22.0 1 0
1 1 38.0 1 0
2 3 26.0 0 0
有没有一个简单的方法可以做到这一点?我对Scikit学习非常陌生,所以我可能只是在做一些愚蠢的事情
需要帮忙吗?如果您向它传递一个数据帧,它将获取列,并使用您提到的get_support按列的索引遍历列列表,以仅提取满足差异阈值的列标题
>&燃气轮机&燃气轮机;df
存活的P类性别年龄SibSp烤肉无意义
0 0 3 1 22 1 0 0
1 1 1 2 38 1 0 0
2 1 3 2 26 0 0 0
&燃气轮机&燃气轮机&燃气轮机;从sklearn.feature\u选择导入变量阈值
&燃气轮机&燃气轮机&燃气轮机;def偏差阈值选择器(数据,阈值=0.5):
选择器=方差阈值(阈值)
选择器.fit(数据)
返回数据[data.columns[selector.get_support(index=True)]]
&燃气轮机&燃气轮机&燃气轮机;方差阈值选择器(df,0.5)
P阶级年龄
0 3 22
1 1 38
2 3 26
&燃气轮机&燃气轮机&燃气轮机;方差阈值选择器(df,0.9)
年龄
0 22
1 38
2 26
&燃气轮机&燃气轮机&燃气轮机;方差阈值选择器(df,0.1)
存活的P类性别年龄SibSp
0 0 3 1 22 1
1 1 1 2 38 1
2 1 3 2 26 0