sklearn.multioutput.ClassifierChain

class sklearn.multioutput.ClassifierChain(base_estimator, *, order=None, cv=None, random_state=None)

[源码]

将二元分类器排列成一个链的多标签模型。

每个模型都使用链中指定的所有可用功能,加上链中较早的模型的预测,按链指定的顺序进行预测。

用户指南中阅读更多内容。

版本0.19中的新功能。

参数 说明
base_estimator estimator
建立分类器链的基础估计量。
order array-like of shape (n_outputs,) or ‘random’, optional
默认情况下,顺序将由标签矩阵Y中的列顺序确定。
order = [0, 1, 2, ..., Y.shape[1] - 1]
可以通过提供整数列表来明确设置链的顺序。例如,对于长度为5的链:
order = [1, 3, 2, 4, 0]
表示链中的第一个模型将对Y矩阵中的第1列进行预测,第二个模型将对第3列进行预测,依此类推。
如果顺序是“随机的”,则将使用随机排序。
cv int, cross-validation generator or an iterable, optional (default=None)
确定是对链中以前的估计量的结果使用交叉验证的预测还是真实的标签。如果cv为None,则在拟合时使用真实标签。否则,cv的可能输入为:
- 整数,用于指定(分层)KFold中的折叠数,
- CV分配器
- 可迭代的数据(训练,测试)拆分为索引数组。
random_state int, RandomState instance or None, optional (default=None)
如果为order='random',则确定链顺序的随机数生成。另外,它控制base_estimator 在每个链式迭代中每次给出的随机种子。因此,仅在base_estimator 暴露时使用random_state。为多个函数调用传递可重复输出的int值。请参阅词汇表
属性 说明
classes_ list
长度数组的列表,len(estimators_)中包含链中每个估计量的类标签。
estimators_ list
base_estimator的克隆列表。
order_ list
标签在分类器链中的顺序。

另见

RegressorChain

等效于回归

MultioutputClassifier

独立地对每个输出分类,而不是链接。

参考文献

1 Jesse Read, Bernhard Pfahringer, Geoff Holmes, Eibe Frank, “Classifier Chains for Multi-label Classification”, 2009.

方法 说明
decision_function(X) 评估链中模型的决策功能。
fit(X, Y) 使模型适合数据矩阵X和目标Y。
get_params([deep]) 获取此估计量的参数。
predict(X) 使用ClassifierChain模型预测数据矩阵X。
predict_proba(X) 预测概率估计。
score(X, y[, sample_weight]) 返回给定测试数据和标签上的平均准确度。
set_params(**params) 设置此估算器的参数。
__init__(base_estimator, *, order=None, cv=None, random_state=None)

[源码]

初始化self, 请参阅help(type(self))以获得准确的说明。

decision_function(X)

[源码]

评估链中模型的决策功能。

参数 说明
X array-like, shape (n_samples, n_features)
返回值 说明
Y_decision array-like, shape (n_samples, n_classes )
返回链中每个模型的样本决策函数。
fit(X, Y)

[源码]

使模型拟合数据矩阵X和目标Y。

参数 说明
X {array-like, sparse matrix}, shape (n_samples, n_features)
输入数据。
Y **array-like, shape (n_samples, n_classes)**目标值。
返回值 说明
self object
get_params(deep=True)

[源码]

获取此估计量的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算量和作为估算量的所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称映射到其值。
predict(X)

[源码]

使用ClassifierChain模型预测数据矩阵X。

参数 说明
X {array-like, sparse matrix}, shape (n_samples, n_features)
输入数据。
返回值 说明
Y_pred array-like, shape (n_samples, n_classes)
预测值。
predict_proba(X)

[源码]

预测概率估计。

参数 说明
X {array-like, sparse matrix}, shape (n_samples, n_features)
返回值 说明
Y_prob array-like, shape (n_samples, n_classes)
score(X, y, sample_weight=None)

[源码]

返回给定测试数据和标签上的平均准确度。

在多标签分类中,这是子集准确性,且是一个苛刻的指标,因为您需要为每个样本正确预测每个标签集。

参数 说明
X array-like of shape (n_samples, n_features)
测试样本。
y array-like of shape (n_samples,) or (n_samples, n_outputs)
X的真实标签。
sample_weight array-like of shape (n_samples,), default=None
样本权重
返回值 说明
score float
self.predict(X) wrt. y.的平均准确度。
set_params(**params)

[源码]

设置此估算器的参数。

该方法适用于简单的估计器以及嵌套对象(例如 pipelines)。后者具有形式的参数, <component>__<parameter>以便可以更新嵌套对象的每个组件。

参数 说明
**params dict
估算量参数。
返回值 说明
self object
估算量实例。

sklearn.multioutput.ClassifierChain使用实例