eli5:show_weights()有两个标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eli5:show_weights()有两个标签相关的知识,希望对你有一定的参考价值。

我正在尝试使用eli5来理解术语对某些类的预测的贡献。

您可以运行此脚本:

import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.datasets import fetch_20newsgroups

#categories = ['alt.atheism', 'soc.religion.christian']
categories = ['alt.atheism', 'soc.religion.christian', 'comp.graphics']

np.random.seed(1)
train = fetch_20newsgroups(subset='train', categories=categories, shuffle=True, random_state=7)
test = fetch_20newsgroups(subset='test', categories=categories, shuffle=True, random_state=7)

bow_model = CountVectorizer(stop_words='english')
clf = LogisticRegression()
pipel = Pipeline([('bow', bow),
                 ('classifier', clf)])

pipel.fit(train.data, train.target)

import eli5
eli5.show_weights(clf, vec=bow, top=20)

问题:

使用两个标签时,不幸的是输出仅限于一个表:

categories = ['alt.atheism', 'soc.religion.christian']

Image 1

但是,当使用三个标签时,它还会输出三个表格。

categories = ['alt.atheism', 'soc.religion.christian', 'comp.graphics']

enter image description here

软件中的错误是它在第一个输出中错过了y = 0,还是我错过了统计点?我希望第一个案例看到两个表格。

答案

这与eli5无关,但与scikit-learn(在本例中为LogisticRegression())如何对待两个类别。对于仅两个类别,问题变为二进制,因此从学习的分类器到处返回只有一列属性。

查看LogisticRegression的属性:

coef_:array,shape(1,n_features)或(n_classes,n_features)

Coefficient of the features in the decision function.
coef_ is of shape (1, n_features) when the given problem is binary.

intercept_:array,shape(1,)或(n_classes,)

Intercept (a.k.a. bias) added to the decision function.

If fit_intercept is set to False, the intercept is set to zero.
intercept_ is of shape(1,) when the problem is binary.

当二进制时,coef_的形状是(1, n_features)。这个coef_eli5.show_weights()使用。

希望这说清楚。

以上是关于eli5:show_weights()有两个标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中将 eli5.show_weights 转换为数组/列表

eli5 解释预测 XGBoost 模型

我可以有一个用于引用和指针的 ELI5 以及何时使用它们吗?

ELI5 explain_weights 和 explain_predictions 作为 pandas DataFrame

ML之PFI(eli5):基于mpg汽车油耗数据集利用RF随机森林算法和PFI置换特征重要性算法实现模型特征可解释性排序

将 PermutationImportance 与 LGBMClassifier 一起使用会导致 ValueError:未知标签类型:“连续”