RidgeClassifier#
- class sklearn.linear_model.RidgeClassifier(alpha=1.0, *, fit_intercept=True, copy_X=True, max_iter=None, tol=0.0001, class_weight=None, solver='auto', positive=False, random_state=None)#
分类器使用岭回归。
该分类器首先将目标值转换为
{-1, 1}
,然后将问题视为回归任务(多类情况下的多输出回归)。更多信息请参阅 用户指南 。
- Parameters:
- alphafloat, default=1.0
正则化强度;必须为正浮点数。正则化改善了问题的条件并减少了估计的方差。较大的值指定更强的正则化。 Alpha 对应于其他线性模型中的
1 / (2C)
,例如LogisticRegression
或LinearSVC
。- fit_interceptbool, default=True
是否计算此模型的截距。如果设置为 false,则不会在计算中使用截距(例如,数据预期已经中心化)。
- copy_Xbool, default=True
如果为 True,将复制 X;否则,可能会覆盖它。
- max_iterint, default=None
共轭梯度求解器的最大迭代次数。默认值由 scipy.sparse.linalg 确定。
- tolfloat, default=1e-4
解的精度 (
coef_
) 由tol
确定,它为每个求解器指定了不同的收敛准则:‘svd’:
tol
无影响。‘cholesky’:
tol
无影响。‘sparse_cg’: 残差的范数小于
tol
。‘lsqr’:
tol
设置为 scipy.sparse.linalg.lsqr 的 atol 和 btol, 它们控制残差向量的范数在矩阵和系数的范数中的表示。‘sag’ 和 ‘saga’: coef 的相对变化小于
tol
。‘lbfgs’: 绝对(投影)梯度的最大值=max|residuals| 小于
tol
。
Changed in version 1.2: 默认值从 1e-3 更改为 1e-4,以便与其他线性模型保持一致。
- class_weightdict 或 ‘balanced’, default=None
与类关联的权重,形式为
{class_label: weight}
。 如果未给出,则所有类别的权重均为一。“balanced” 模式使用 y 的值自动调整权重,与输入数据中的类别频率成反比, 如
n_samples / (n_classes * np.bincount(y))
。- solver{‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’, ‘lbfgs’}, default=’auto’
计算例程中使用的求解器:
‘auto’ 根据数据类型自动选择求解器。
‘svd’ 使用 X 的奇异值分解来计算岭系数。它是最稳定的求解器, 特别是对于奇异矩阵比 ‘cholesky’ 更稳定,但速度较慢。
‘cholesky’ 使用标准的 scipy.linalg.solve 函数来获得闭式解。
‘sparse_cg’ 使用 scipy.sparse.linalg.cg 中找到的共轭梯度求解器。 作为一种迭代算法,此求解器比 ‘cholesky’ 更适合大规模数据 (可以设置
tol
和max_iter
)。‘lsqr’ 使用专用的正则化最小二乘例程 scipy.sparse.linalg.lsqr。 它是最快的,并使用迭代过程。
‘sag’ 使用随机平均梯度下降,’saga’ 使用其无偏且更灵活的版本 SAGA。 这两种方法都使用迭代过程,并且在 n_samples 和 n_features 都很大时通常比其他求解器更快。 注意,’sag’ 和 ‘saga’ 的快速收敛仅在特征具有大致相同的尺度时得到保证。 您可以使用 sklearn.preprocessing 中的缩放器预处理数据。
Added in version 0.17: 随机平均梯度下降求解器。
Added in version 0.19: SAGA 求解器。
‘lbfgs’ 使用
scipy.optimize.minimize
中实现的 L-BFGS-B 算法。 只有在positive
为 True 时才支持使用。
- positivebool, default=False
当设置为
True
时,强制系数为正。 只有 ‘lbfgs’ 求解器在此情况下受支持。- random_stateint, RandomState 实例, default=None
当
solver
== ‘sag’ 或 ‘saga’ 时用于打乱数据。 详情请参阅 Glossary 。
- Attributes:
- coef_ndarray of shape (1, n_features) or (n_classes, n_features)
决策函数中特征的系数。
coef_
在给定二分类问题时形状为 (1, n_features)。- intercept_float 或 ndarray of shape (n_targets,)
决策函数中的独立项。如果
fit_intercept = False
,则设置为 0.0。- n_iter_None 或 ndarray of shape (n_targets,)
每个目标的实际迭代次数。仅适用于 sag 和 lsqr 求解器。其他求解器将返回 None。
classes_
ndarray of shape (n_classes,)类标签。
- n_features_in_int
在 fit 期间看到的特征数量。
Added in version 0.24.
- feature_names_in_ndarray of shape (
n_features_in_
,) 在 fit 期间看到的特征名称。仅当
X
的特征名称为所有字符串时定义。Added in version 1.0.
- solver_str
计算例程在拟合时使用的求解器。
Added in version 1.5.
See also
Ridge
岭回归。
RidgeClassifierCV
内置交叉验证的岭分类器。
Notes
对于多类分类,在 one-versus-all 方法中训练 n_class 分类器。 具体实现是通过利用 Ridge 中的多变量响应支持来实现的。
Examples
>>> from sklearn.datasets import load_breast_cancer >>> from sklearn.linear_model import RidgeClassifier >>> X, y = load_breast_cancer(return_X_y=True) >>> clf = RidgeClassifier().fit(X, y) >>> clf.score(X, y) 0.9595...
- property classes_#
类标签。
- decision_function(X)#
预测样本的置信度分数。
样本的置信度分数与其到超平面的有符号距离成正比。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
我们想要获取置信度分数的数据矩阵。
- Returns:
- scoresndarray,形状为 (n_samples,) 或 (n_samples, n_classes)
每个
(n_samples, n_classes)
组合的置信度分数。在二分类情况下,self.classes_[1]
的置信度分数,其中 >0 表示会预测这个类别。
- fit(X, y, sample_weight=None)#
拟合岭分类器模型。
- Parameters:
- X{ndarray, sparse matrix},形状为 (n_samples, n_features)
训练数据。
- yndarray,形状为 (n_samples,)
目标值。
- sample_weightfloat 或 ndarray,形状为 (n_samples,),默认=None
每个样本的个体权重。如果给定一个浮点数,每个样本将有相同的权重。
Added in version 0.17: 岭分类器的 sample_weight 支持。
- Returns:
- selfobject
估计器的实例。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- predict(X)#
预测
X
中的样本类别标签。- Parameters:
- X{array-like, spare matrix} 形状为 (n_samples, n_features)
我们想要预测目标的数据矩阵。
- Returns:
- y_predndarray 形状为 (n_samples,) 或 (n_samples, n_outputs)
包含预测的向量或矩阵。在二分类和多分类问题中,这是一个包含
n_samples
的向量。在多标签问题中,它返回形状为(n_samples, n_outputs)
的矩阵。
- score(X, y, sample_weight=None)#
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的指标,因为你要求每个样本的每个标签集都被正确预测。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组
测试样本。
- 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$') RidgeClassifier #
Request metadata passed to the
fit
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.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 infit
.
- 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$') RidgeClassifier #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.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 inscore
.
- Returns:
- selfobject
The updated object.