Ridge 岭回归

岭回归在 sklearn中的实现 RidgeClassifier,也称为带有线性核的最小二乘支持向量机。该分类器首先将二进制目标转换为(- 1,1),将问题视为回归任务,优化与上面相同的目标。预测类对应于回归预测的符号,对于多类分类,将问题视为多输出回归,预测类对应的输出值最大。使用最小二乘损失来适应分类模型,RidgeClassifier 使用的惩罚最小二乘损失允许对具有不同计算性能概要的数值求解器进行各自不同的选择。

RidgeClassifier 比 LogisticRegression 快,其只一次计算投影矩阵。

from sklearn.linear_model import RidgeClassifier
RidgeClassifier(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, class_weight=None, solver='auto', random_state=None)

参数:

alpha:float, default=1.0,正则化强度,正浮点数。改进了问题条件,减少了估计的方差。较大的值指定更强的正则化,在其他线性模型中,alpha对应于C^-1,如逻辑回归或线性vc。

fit_intercept:bool, default=True,是否为该模型计算截距。false 表示不使用截距。

normalize:bool, default=False,False 表示忽略该参数。True 则回归前将对回归数 X 进行归一化处理,方法是减去均值再除以 L2-范数。

copy_X:bool, default=True,如果为真,则复制X,否则,它可能被覆盖。

max_iter:int, default=None, 共轭梯度求解器的最大迭代次数。

tol::float, default=1e-3,求解的精度。

class_weight:dict or ‘balanced’, default=None  与{class_label: weight},形式的类相关联的权重。如果没有给出,所有的类都应该有权重1。“平衡”模式使用y的值自动调整权重,与输入数据中的类频率成反比。

solver:‘auto’, ‘svd’, ‘cholesky’, ‘lsqr’, ‘sparse_cg’, ‘sag’, ‘saga’, default=’auto’ , “auto”:根据数据类型自动选择求解器。"svd”:使用 X 的奇异值分解计算系数。对于奇异矩阵比“cholesky”更稳定。"cholesky”:求函数的一个闭型解。“sparse_cg”:使用了在sci .sparse.linalg.cg中找到的共轭梯度求解器。作为一种迭代算法,该求解器比‘cholesky’更适用于大规模数据(可能设置tol和max_iter)。“lsqr”:使用专用的正则化最小二乘例程sci .sparse.linalg.lsqr。它是最快的,并使用迭代过程。"sag":使用的是随机平均梯度下降法,"saga":使用无偏法和更灵活的版本saga。这两种方法都使用迭代过程,当n_samples和n_features都很大时,通常比其他求解器更快。random_state:int, RandomState instance, default=None  在数据变换时使用的伪随机数生成器的种子。如果int, random_state是随机数生成器使用的种子;如果RandomState实例,random_state是随机数生成器;如果没有,随机数生成器就是 np.random 使用的 RandomState 实例。

属性

coef_: ndarray of shape (1, n_features) or (n_classes, n_features)

决策函数中的系数。当给定的问题是二进制时,coef_的形状为(1,n_features)。

intercept_: float or ndarray of shape (n_targets,)

决策函数中的截距(常数项)。如果fit_intercept = False,设置为0.0。

n_iter_: None or ndarray of shape (n_targets,)

每个目标的实际迭代次数。仅适用于sag和lsqr解决方案。其他求解器将返回None

classes_: ndarray of shape (n_classes,)

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)

RidgeCV

通过内建的 alpha 参数交叉验证实现 ridge 回归。工作方式与GridSearchCV相同,默认使用通用交叉验证(GCV),一种有效的遗漏交叉验证形式。

from sklearn.linear_model import RidgeCV

RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, normalize=False, scoring=None, cv=None, gcv_mode=None, store_cv_values=False)

alpha:array of shape (n_alphas,), default=(0.1, 1.0, 10.0) ,正则化强度,正浮点数。正则化改进了问题的条件,减少了估计的方差。较大的值指定更强的正则化。

scoring:string, callable, default=None,一个字符串或一个有签名的记分器(estimator, X, y)的记分器可调用的对象 / 函数, 如果没有,如果cv为“自动”或没有(即当使用广义交叉验证时),负的均方误差,否则 r2 得分。

cv::int, cross-validation generator or an iterable, default=None,交叉验证分割策略,默认无,可以是整数,指定分割的次数。也可以是一个可迭代的结果(序列,测试)被分割为索引数组。

gcv_mode::{‘auto’, ‘svd’, eigen’}, default=’auto’,标志,指示执行通用交叉验证时使用的策略。

store_cv_values: bool, default=False ,标志,指示与每个alpha相对应的交叉验证值是否应该存储在cv_values_属性中。此标志仅与cv=None兼容(即使用通用交叉验证)

from sklearn.datasets import load_diabetes
from sklearn.linear_model import RidgeCV
X, y = load_diabetes(return_X_y=True)
clf = RidgeCV(alphas=[1e-3, 1e-2, 1e-1, 1]).fit(X, y)
clf.score(X, y)

参考:

岭回归分类器RidgeClassifier及RidgeCV(代码详解)_管牛牛的博客-CSDN博客_ridgeclassifier

你可能感兴趣的:(机器学习)