小编use*_*328的帖子

使用sklearn进行多标签特征选择

我正在寻找使用 sklearn 对多标签数据集执行特征选择。我想获得标签的最终特征集,然后我将在另一个机器学习包中使用这些特征。我打算使用我在这里看到的方法,它分别为每个标签选择相关特征。

from sklearn.svm import LinearSVC
from sklearn.feature_selection import chi2, SelectKBest
from sklearn.multiclass import OneVsRestClassifier
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
                ('svm', LinearSVC())])
multi_clf = OneVsRestClassifier(clf)
Run Code Online (Sandbox Code Playgroud)

然后我计划使用以下方法提取每个标签包含的特征的索引:

selected_features = []
for i in multi_clf.estimators_:
    selected_features += list(i.named_steps["chi2"].get_support(indices=True))
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,如何选择要包含在最终模型中的选定特征?我可以使用每一个独特的特征(包括只与一个标签相关的特征),或者我可以做一些事情来选择与更多标签相关的特征。

我最初的想法是创建一个给定特征选择的标签数量的直方图,并根据视觉检查确定一个阈值。我担心的是这种方法是主观的。使用 sklearn 为多标签数据集执行特征选择是否有更原则性的方法?

machine-learning feature-selection python-2.7 scikit-learn multilabel-classification

7
推荐指数
1
解决办法
8350
查看次数

如何在带有误差线的条形图中绘制pandas数据帧的特定行和列(基于行的名称和列的名称)?

我有一个csv文件中的数据结构如下:

    Subject    group    Result1    Result2...    ResultN
    101        a        .5         .1            .2
    103        b        .1         .2            .5
    104        b        .2         .3            .4
    mean_a     a        .5         .1            .2
    mean_b     b        .1         .6            .4
    ste_a      a        .05        .02           .03
    ste_b      b        .01        .05           .04
Run Code Online (Sandbox Code Playgroud)

我只想得到一个条形图,按结果分组,每组的平均行值,其中ste为误差条.不幸的是,我很难这样做.我可以将数据帧转换为两个独立的数据帧,一个用于均值,一个用于ste,如下所示:

               a        b
    Result1    .5       .1
    Result2    .1       .6
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何绘制stes的第二个数据帧作为错误条,我的方法似乎过于复杂,所以我想知道是否有人知道更简单的方法来做到这一点,如果没有,如何使用一个数据帧绘制其他数据帧的误差线.

python plot matplotlib pandas

5
推荐指数
1
解决办法
4548
查看次数