DummyClassifier#

class sklearn.dummy.DummyClassifier(*, strategy='prior', random_state=None, constant=None)#

DummyClassifier 生成忽略输入特征的预测。

该分类器作为与其他更复杂分类器进行比较的简单基线。

基线的具体行为通过 strategy 参数选择。

所有策略生成的预测都会忽略作为 X 参数传递给 fitpredict 的输入特征值。然而,预测通常依赖于在 fit 中传递的 y 参数中观察到的值。

请注意,”stratified” 和 “uniform” 策略会导致非确定性预测,如果需要,可以通过设置 random_state 参数使其确定性。其他策略本质上是确定性的,一旦拟合,总是为任何 X 值返回相同的常量预测。

更多信息请参阅 用户指南

Added in version 0.13.

Parameters:
strategy{“most_frequent”, “prior”, “stratified”, “uniform”, “constant”}, default=”prior”

用于生成预测的策略。

  • “most_frequent”:predict 方法总是返回在 fit 中传递的观察到的 y 参数中最频繁的类标签。 predict_proba 方法返回匹配的一热编码向量。

  • “prior”:predict 方法总是返回在 fit 中传递的观察到的 y 参数中最频繁的类标签(类似于 “most_frequent”)。 predict_proba 总是返回 y 的经验类分布,也称为经验类先验分布。

  • “stratified”:predict_proba 方法从由经验类先验概率参数化的多项分布中随机抽样一热向量。 predict 方法返回在 predict_proba 的一热向量中概率为1的类标签。因此,这两种方法的每一行样本都是独立且同分布的。

  • “uniform”: 从 y 中观察到的唯一类列表中均匀随机生成预测,即每个类具有相等的概率。

  • “constant”: 总是预测用户提供的常量标签。这对于评估非多数类的指标很有用。

    Changed in version 0.24: 从版本 0.24 开始, strategy 的默认值已更改为 “prior”。

random_stateint, RandomState instance or None, default=None

控制生成预测时的随机性,当 strategy='stratified'strategy='uniform' 时。传递一个 int 以在多次函数调用中生成可重现的输出。请参阅 Glossary

constantint or str or array-like of shape (n_outputs,), default=None

“constant” 策略预测的显式常量。此参数仅对 “constant” 策略有用。

Attributes:
classes_ndarray of shape (n_classes,) or list of such arrays

y 中观察到的唯一类标签。对于多输出分类问题,此属性是数组的列表,因为每个输出都有一组独立的可能类。

n_classes_int or list of int

每个输出的标签数量。

class_prior_ndarray of shape (n_classes,) or list of such arrays

y 中观察到的每个类的频率。对于多输出分类问题,这是独立为每个输出计算的。

n_features_in_int

fit 期间看到的特征数量。

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 期间看到的特征名称。仅当 X 具有全部为字符串的特征名称时定义。

n_outputs_int

输出数量。

sparse_output_bool

如果从 predict 返回的数组要为稀疏 CSC 格式,则为 True。如果输入 y 以稀疏格式传递,则自动设置为 True。

See also

DummyRegressor

使用简单规则生成预测的回归器。

Examples

>>> import numpy as np
>>> from sklearn.dummy import DummyClassifier
>>> X = np.array([-1, 1, 1, 1])
>>> y = np.array([0, 1, 1, 1])
>>> dummy_clf = DummyClassifier(strategy="most_frequent")
>>> dummy_clf.fit(X, y)
DummyClassifier(strategy='most_frequent')
>>> dummy_clf.predict(X)
array([1, 1, 1, 1])
>>> dummy_clf.score(X, y)
0.75
fit(X, y, sample_weight=None)#

拟合基线分类器。

Parameters:
X形状为 (n_samples, n_features) 的类数组

训练数据。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组

目标值。

sample_weight形状为 (n_samples,) 的类数组,默认=None

样本权重。

Returns:
selfobject

返回实例本身。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

predict(X)#

执行对测试向量X的分类。

Parameters:
X形状为 (n_samples, n_features) 的类数组

测试数据。

Returns:
y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组

X的预测目标值。

predict_log_proba(X)#

返回测试向量X的对数概率估计。

Parameters:
X{类似数组,具有有限长度或形状的对象}

训练数据。

Returns:
P形状为(n_samples, n_classes)的ndarray或此类数组的列表

返回模型中每个类别的样本的对数概率,其中每个输出的类别按算术顺序排列。

predict_proba(X)#

返回测试向量X的概率估计。

Parameters:
X形状为 (n_samples, n_features) 的类数组

测试数据。

Returns:
P形状为 (n_samples, n_classes) 的 ndarray 或此类数组的列表

返回模型中每个类别的样本概率,其中类别按算术顺序排列,每个输出对应一个。

score(X, y, sample_weight=None)#

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

在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。

Parameters:
XNone 或形状为 (n_samples, n_features) 的类数组对象

测试样本。传递 None 作为测试样本会得到与传递真实测试样本相同的结果,因为 DummyClassifier 独立于采样观测值进行操作。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象

X 的真实标签。

sample_weight形状为 (n_samples,) 的类数组对象,默认=None

样本权重。

Returns:
scorefloat

self.predict(X) 相对于 y 的平均准确率。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') DummyClassifier#

Request metadata passed to the fit method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to fit .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in fit .

Returns:
selfobject

The updated object.

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') DummyClassifier#

Request metadata passed to the score method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to score .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score .

Returns:
selfobject

The updated object.