相关疑难解决方法(0)

如何获得scikit-learn分类器的最丰富的功能?

liblinear和nltk等机器学习包中的分类器提供了一种方法show_most_informative_features(),它对调试功能非常有用:

viagra = None          ok : spam     =      4.5 : 1.0
hello = True           ok : spam     =      4.5 : 1.0
hello = None           spam : ok     =      3.3 : 1.0
viagra = True          spam : ok     =      3.3 : 1.0
casino = True          spam : ok     =      2.0 : 1.0
casino = None          ok : spam     =      1.5 : 1.0
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果在scikit-learn中为分类器实现类似的东西.我搜索了文档,但找不到类似的东西.

如果还没有这样的功能,有人知道如何获得这些值吗?

非常感谢!

python classification machine-learning scikit-learn

64
推荐指数
5
解决办法
5万
查看次数

使用scikit确定每个要素对特定类预测的贡献

我正在使用scikit额外的树分类器:

model = ExtraTreesClassifier(n_estimators=10000, n_jobs=-1, random_state=0)
Run Code Online (Sandbox Code Playgroud)

一旦模型被拟合并用于预测类,我想找出每个特征对特定类预测的贡献.我如何在scikit中学习呢?是否可以使用额外的树分类器或我是否需要使用其他模型?

python scikit-learn

16
推荐指数
3
解决办法
7438
查看次数

如何获取特征的权重

我正在处理高度不平衡的数据集,我的想法是从我的libSVM模型中获取特征权重值.至于现在,我可以使用线性内核,在那里我可以获得特征权重,但是当我使用rbf或者poly,我无法实现我的目标.

在这里,我使用的sklearn是我的模型,很容易获得线性内核使用的特征权重.coef_.任何人都可以帮我做同样的事情rbfpoly?我到目前为止尝试做的事情如下:

svr = SVC(C=10, cache_size=200, class_weight='auto', coef0=0.0, degree=3.0, gamma=0.12,kernel='rbf', max_iter=-1, probability=True, random_state=0,shrinking=True, tol=0.001, verbose=False)
clf = svr.fit(data_train,target_train)
print clf.coef_
Run Code Online (Sandbox Code Playgroud)

python machine-learning svm libsvm scikit-learn

11
推荐指数
1
解决办法
8124
查看次数

如何确定 SVM 中非线性内核的特征重要性

我正在使用以下代码进行特征重要性计算。

from matplotlib import pyplot as plt
from sklearn import svm

def features_importances(coef, names):
    imp = coef
    imp,names = zip(*sorted(zip(imp,names)))
    plt.barh(range(len(names)), imp, align='center')
    plt.yticks(range(len(names)), names)
    plt.show()

features_names = ['input1', 'input2']
svm = svm.SVC(kernel='linear')
svm.fit(X, Y)
feature_importances(svm.coef_, features_names)
Run Code Online (Sandbox Code Playgroud)

我如何能够计算非线性内核的特征重要性,这在给定的示例中没有给出预期的结果。

python machine-learning svm scikit-learn

6
推荐指数
1
解决办法
2435
查看次数

确定 sklearn 或任何 python 库中非线性 SVM 回归的最有贡献的特征

我使用基于 RBF 内核的支持向量机回归训练了一个模型。我想知道对基于 RBF 内核的支持向量机非常重要或主要贡献的功能。我知道有一种方法可以了解基于向量大小的权重向量对线性支持向量回归最有贡献的特征。然而,对于基于 RBF 核的支持向量机,由于特征被转换到一个新的空间,我不知道如何提取最有贡献的特征。我在 python 中使用 scikit-learn。有没有办法在基于 RBF 核的支持向量回归或非线性支持向量回归中提取最有贡献的特征?

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'linear')
Run Code Online (Sandbox Code Playgroud)

在这种情况下: 在 sklearn为 SVM 分类器确定最有贡献的特征效果很好。但是,如果将内核更改为

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'rbf')
Run Code Online (Sandbox Code Playgroud)

上面的答案不起作用。

python scikit-learn jupyter-notebook

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

使用 SVM 的 coef_ 函数计算特征重要性

我正在开发一个文本分类项目,并尝试使用 SVC(kernel= '线性') 来获取特征重要性。这是我的代码:(我更改了这篇文章
中的代码)

X = df1[features]
y = df1['label']


# Create selector class for text and numbers
class TextSelector(BaseEstimator, TransformerMixin):
    """Transformer to select a single column from the data frame to perform additional transformations on"""
    def __init__(self, key):
        self.key = key

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        return X[self.key]

class NumberSelector(BaseEstimator, TransformerMixin):
    """For data grouped by feature, select subset of data at a provided key."""
    def __init__(self, key):
        self.key = key

    def fit(self, X, …
Run Code Online (Sandbox Code Playgroud)

python svm scikit-learn

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