sklearn.multiclass.OneVsOneClassifier¶
class sklearn.multiclass.OneVsOneClassifier(estimator, *, n_jobs=None)
[源码]
一对多策略
该策略包括为每个类别对配备一个分类器。在预测时,选择获得最多选票的类。由于该方法需要适合分类器,因此该方法的复杂度为O(n_classes ^ 2),通常比其余方法慢。但是,这种方法对于无法很好地扩展的算法(例如内核算法)可能是有利的 。这是因为每个单独的学习问题仅涉及数据的一小部分,而相对于其余部分,完整数据集的使用次数为:
n_classes * (n_classes - 1) / 2 n_samples n_classes
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
estimator | estimator object 种实现拟合和决策函数(decision_function)或预测概率(predict_proba)之一的估计对象。 |
n_jobs | int or None, optional (default=None) 用于计算的数量。 None 除非joblib.parallel_backend 上下文中,否则表示1 。 -1 表示使用所有处理器。有关 更多详细信息,请参见词汇表。 |
属性 | 说明 |
---|---|
estimators_ | list of n_classes * (n_classes - 1) / 2 estimators用于预测的估计量。 |
classes_ | numpy array of shape [n_classes] 包含标签的数组。 |
n_classes_ | int 类数 |
pairwise_indices_ | list, length = len(estimators_) , or None 训练估计量时使用的样本索引。 None 时estimator 没有_pairwise 属性。 |
实例
>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.multiclass import OneVsOneClassifier
>>> from sklearn.svm import LinearSVC
>>> X, y = load_iris(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(
... X, y, test_size=0.33, shuffle=True, random_state=0)
>>> clf = OneVsOneClassifier(
... LinearSVC(random_state=0)).fit(X_train, y_train)
>>> clf.predict(X_test[:10])
array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1])
方法 | 说明 |
---|---|
decision_function (X) |
OneVsOneClassifier的决策函数。 |
fit (X, y) |
拟合基础估计量。 |
get_params ([deep]) |
获取此估计量的参数。 |
partial_fit (X, y[, classes]) |
部分拟合基础估计量 |
predict (X) |
估计X中每个样本的最佳分类标签。 |
score (X, y[, sample_weight]) |
返回给定测试数据和标签上的平均准确度。 |
set_params (**params) |
设置此估算器的参数。 |
_init__(estimator, *, n_jobs=None)
[源码]
初始化self, 请参阅help(type(self))以获得准确的说明。
decision_function(X)
[源码]
OneVsOneClassifier的决策函数。
通过将成对分类置信度的归一化总和添加到票中来计算样本的决策值,以便在所有类的票均相等导致平局时在决策值之间消除歧义。
参数 | 说明 |
---|---|
X | array-like of shape (n_samples, n_features) |
返回值 | 说明 |
---|---|
Y | array-like of shape (n_samples, n_classes) 在版本0.19中进行了更改:输出形状已更改为(n_samples,)符合scikit-learn二进制分类的约定。 |
fit(X,y)
[源码]
拟合基础估计量。
参数 | 说明 |
---|---|
X | (sparse) array-like of shape (n_samples, n_features) 数据 |
y | array-like of shape (n_samples,) 多类别目标。 |
返回值 |
---|
self |
get_params(deep=True)
[源码]
获取此估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估计量和作为估计量的包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
partial_fit(X, y, classes=None)
[源码]
部分拟合基础估计量
当内存不足以训练所有数据时应使用。可以在多次迭代中传递数据块,其中第一次调用应具有所有目标变量的数组。
参数 | 说明 |
---|---|
X | (sparse) array-like of shape (n_samples, n_features) 数据 |
y | array-like of shape (n_samples,) 多类别目标。 |
classes | array, shape (n_classes, ) 所有对partial_fit的调用中的类。可以通过 np.unique(y_all) 获得,其中y_all是整个数据集的目标向量。仅在partial_fit的第一次调用中需要此参数,而在后续调用中可以将其省略。 |
返回值 |
---|
self |
predict(X)
[源码]
估计X中每个样本的最佳类别标签。
这是作为 argmax(decision_function(X), axis=1)
实现的,它将通过预测每个可能类对的决策结果的估计器返回具有大多数投票的类的标签。
参数 | 说明 |
---|---|
X | (sparse) array-like of shape (n_samples, n_features) 数据 |
返回值 | 说明 |
---|---|
y | numpy array of shape [n_samples] 预测的多类别目标。 |
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 估算量实例。 |