机器学习——线性回归(sklearn)

news2024/9/21 0:47:24

 

目录

一、认识线性回归

1. 介绍

2. 多元线性回归的基本原理(LinearRegression)

二、多重共线性

1. 介绍

2. 多重共线性详细解释

三、岭回归(解决多重共线性问题)

1. 模型推导

2. 选取最佳的正则化参数取值

四、Lasso(解决多重共线性问题)

五、多项式回归(解决非线性问题)

六、回归类的模型评估指标

1. 是否预测到了正确的数值

(1)均方误差

(2)绝对均值误差

2. 是否拟合到了足够的信息

七、sklearn中的线性回归(自查)


一、认识线性回归

1. 介绍

        回归是一种 应用广泛的 预测建模技术,这种 技术的核心 在于 预测的结果 是连续型变量。理解线性回归可以有 两种角度:矩阵的角度和代数的角度

2. 多元线性回归的基本原理(LinearRegression)

        多元线性回归 指的 是一个样本 有多个特征的 线性回归问题。对于一个有 n 个特征的样本 i 而言,它的 回归结果可以 写作方程:

        w 被统称为 模型的 参数,其中 w0 被称为截距(intercept),w1~wn 被称为 回归系数(regression coefficient)。这个表达式和 y=az+b 是同样的性质。其中 y 是目标变量,也就是 标签。xi1~xin 是样本 i 上的特征 不同特征。如果考虑有 m 个样本,则回归结果 可以被写作:

        其中 ~{y} 是包含了 m 个全部的样本的回归结果的 列向量。

        注:通常 使用 粗体的 小写字母来 表示列向量,粗体的 大写字母 表示矩阵 或者 行列式。

        进一步的,可以 使用 矩阵来表示这个方程,其中 w 可以被看做是一个结构为(n+1, 1)的列矩阵,X 是一个结构为(m, n+1)的特征矩阵,则有:

        线性回归的任务,就是 构造一个 预测函数来 映射输入的 特征矩阵 X 和 标签值 y 的 线性关系。这个 预测函数的本质 就是需要 构建的模型,而 构造预测函数的 核心就是 找出模型的参数向量 w

        在逻辑回归 和 SVM 中,都是先定义了 损失函数,然后 通过 最小化损失函数 或 损失函数的某种变化 来将求解 参数向量,以此 将单纯的 求解问题转化为一个 最优化问题。在 多元线性回归中,损失函数如下定义:

        其中 ~{y_i} 是样本 i 对应的 真实标签,$\hat{y_i}$ 也就是 ~{X_iw} 是样本 i 在一组参数 w 下的 预测标签。

        现在 只实现了向量上 每个点对应相乘后的 平方和,开没有 开平方,所以 损失函数是 L2 范式,即 欧式距离的 平方结果。这个损失函数实在的 计算了 真实标签和预测值之间的距离。因此,我们认为这个损失函数衡量了构造的模型的预测结果和真实标签的差异,因此我们 希望预测结果 和 真实值差异 越小越好。经转换的 求解目标:

        其中右下角的 2 表示向量 y-Xw 的 L2 范式,也就是 损失函数 所代表的 含义。在 L2 范式上 开平方,就是 损失函数。我们往往 称呼这个式子为 SSE (Sum of Sqaured Error,误差平方和)或者RSS (Residual Sum of Squares 残差平方和)。在 sklearn 所有官方文档和网页上,都称之为 RSS残差平方和

        现在问题转换成了 求解让 RSS 最小化的 参数向量 w,这种 通过最小化 真实值 和 预测值之间的 RSS 来求解参数的方法叫做 最小二乘法。现在 残差平方 和 RSS 上对参数向量 w 求导。

        在这里,逆矩阵 存在的 充分必要条件是 特征矩阵 不存在多重共线性。假设矩阵的逆 是存在的,此时我们的 w 就是参数的 最优解。求解出 这个 参数向量,就解出了我们的 Xw,也就能够计算出我们的 预测值了。

class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
参数含义
fit_intercept
布尔值,可不填,默认为 True
是否计算此模型的截距。如果设置为 False ,则不会计算截距
normalize
布尔值,可不填,默认为 False
设置为 False 时,将忽略此参数。如果为 True ,则特征矩阵 X 在进入回归之前将
会被减去均值(中心化)并除以  L2 范式(缩放)。如果希望进行标准化,请在 fit 数据之前使用 preprocessing  模块中的 标准化专用类  StandardScaler
copy_X
布尔值,可不填,默认为 True
如果为真,将在 X.copy() 上进行操作,否则的话原本的特征矩阵 X 可能被线性回归影响并覆盖
n_jobs
整数或者 None ,可不填,默认为 None
用于计算的作业数。只在多标签的回归和数据量足够大的时候才生效。除非 None 在 joblib.parallel_backend上下文中,否则 None 统一表示为 1 。如果输入 -1 ,则表示使用全部 的CPU 来进行计算。
属性含义
coef_
数组,形状为 (n_features, )  或者  (n_targets, n_features) 线性回归方程中估计出的系数。
如果在fit 中传递多个标签(当 y 为二维或以上的时候),则返回 的系数是形状为(n_targets n_features )的二维数组,而如果仅传递一个标签,则返回的系
数是长度为 n_features 的一维数组。
intercept_
数组,线性回归中的截距项。

二、多重共线性

1. 介绍

        多重共线性 是一种 统计现象,是 指线性模型中的 特征(解释变量)之间 由于存在 精确相关关系 或 高度相关关系,多重共线性的 存在会使模型 无法建立,或者 估计失真。

2. 多重共线性详细解释

        在 最后一步中 需要左乘 X^TX 的逆矩阵,而 逆矩阵 存在的 充分必要条件 是特征矩阵 不存在多重共线性

        首先需要 先理解 逆矩阵存在 与否 的 意义 和 影响。逆矩阵的 计算公式:

        位于 分母的 变量不能 为 0,一旦 为 0 则 无法计算出 逆矩阵。因此 逆矩阵 存在的 充分必要条件是:矩阵的行 列式不能为 0,对于 线性回归而言,即是说  |X^TX|  不能为 0。这是使用 最小二乘法来 求解线性回归的 核心条件之一。

        假设 特征矩阵 X 结构为(m,n),则 X^TX 就是结构为(n,m)的矩阵乘以结构为(m,n)的矩阵,从而得到结果为(n,n)的方阵。

        在线性代数中,可以 通过 行列式的计算 将一个行列式 整合成一个梯形的 行列式:

        梯形的行列式 表现为,所有的数字 都被整合 到对角线的 上方 或 下方(通常是上方),虽然具体的 数字发生了变化,但是 行列式的 大小在 初等行变换 / 列变换 的过程中是 不变的。

    

        矩阵满秩(即 转换为 梯形矩阵后 对角线上没有 0)是矩阵的行列式不为 0 的充分必要条件。

   假设:

        对于上述矩阵 进行变换:

        矩阵 A 明显 不是满秩的,它 有全零行所以 行列式会 为 0。而 矩阵 B 和 C 没有 全零行 所以满秩。而 矩阵 A 和 矩阵 B 的区别在于,A 中存在 着完全 具有 线性关系的两行(1,1,2)和(2,2,4),而 B 和 C 中则 没有这样的 两行。而 矩阵 B 虽然 对角线上 每个元素都不 为 0,但具 有非常接近于 0 的 元素 0.02,而 矩阵 C 的对角线上 没有任何元素 特别接近于 0。

        矩阵 A 中 第一行 和 第三行的 关系,被称为 “精确相关关系”,即 完全相关,一行 可使另一行 为 0。在 这种精确 相关关系 下,矩阵 A 的行列式 为 0,则 矩阵 A 的逆 不可能存在。在 我们的 最小二乘法中,如果矩阵 X^TX 中存在这种 精确 相关关系,则逆 不存在,最小二乘法 完全无法使用,线性回归 会无法 求出结果。

        矩阵 B 中 第一行 和 第三行 的关系 不太一样,他们之间 非常接近于 “精确相关关系” ,但又 不是完全相关,一行 不能 使另一行 为 0,这种关系 被称为 “高度相关关系”。在这种 高度 相关关系下,矩阵的 行列式 不为 0,但 是一个 非常接近 0 的数,矩阵 A 的逆 存在,不过 接近于 无限大。在这种情况下,最小二乘法 可以使用,不过 得到的 逆会很大,直接 影响我们对参数向量 w 的求解:

        这样 求解出来的 参数向量 w 会很大,因此 会影响建模的 结果,造成模型 有偏差 或者 不可用。精确相关关系 和 高度相关关系 并称为 “多重共线性”。在 多重共线性下,模型 无法建立,或者 模型不可用。

        相对的,矩阵 C 的行之间 结果 相互独立,梯形矩阵 看起来 非常正常,它的对角线上 没有任何元素 特别接近于 0,因此 其行列式也就 不会接近 0 或者 为 0,因此 矩阵 C 得出的 参数向量 w就不会 有太大偏差,对于 我们拟合而言是 比较理想的。

        所以,一个矩阵 如果 要满秩,则要 求矩阵中 每个向量之间 不能存在 多重共线性,这也 构成了线性回归算法 对于 特征矩阵的要求。

三、岭回归(解决多重共线性问题)

1. 模型推导

        岭回归,又称为 吉洪诺夫正则化 (Tikhonov regularization)。岭回归 在多元线性回归的 损失函数上 加上了正则项,表达为 系数 w 的 L2范式(即系数w的平方项)乘以 正则化系数 a。

        依然使用 最小二乘法来求解。假设 特征矩阵结构为(m,n),系数 w 的结构是(1, n),则可以有:

         正则化系数 a 避免了 “精确相关关系” 带来的影响。当 a 越大,模型 越不容易受到 共线性的影响。

        最小二乘法 一定有解,并且 这个解可以通过 a 来进行调节,以 确保 不会偏离太多。当然 a 挤占了 w 中由原始的 特征矩阵 贡献的空间,因此 a 如果太大,也会导致 w 的估计 出现较大的 偏移,无法 正确拟合数据的 真实面貌。

# 在sklearn中,岭回归由线性模型库中的Ridge类来调用

class sklearn.Linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver=‘auto’, random_ state=None)

2. 选取最佳的正则化参数取值

        这一个以 正则化参数 为 横坐标,线性模型求解的 系数 w 为纵坐标的图像,其中 每一条 彩色的线 都是一个 系数 w。其目标是 建立正则化参数 与 系数 w 之间的 直接关系,以此来 观察 正则化参数的 变化 如何影响了 系数 w 的拟合。

        岭迹图认为,线条 交叉 越多,则说明 特征之间的 多重共线性 越高。应该 选择系数较 为 平稳的 喇叭口 所对应的 a 取值 作为 最佳的 正则化参数的 取值。

# 使用交叉验证来选择最佳的正则化系数

class sklearn.linear_model.RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, normalize=False, scoring=None,cv=None, gcv_mode=None, store_cv_values=False)
重要参数含义
alphas
需要测试的正则化参数的取值的元祖
scoring
用来进行交叉验证的模型评估指标,默认是 R²,可自行调整
store_cv_values
是否保存每次交叉验证的结果,默认False
cv
交叉验证的模式,默认是 None ,表示默认进行  留一交叉验证
可以输入  Kfold  对象 和  StratifiedKFold  对象 来进行交叉验证
注:仅仅当为 None 时,每次交叉验证的结果才可以被保存下来
cv 有值存在(不是 None )时, store_cv_values 无法被设定为 True
重要属性含义
alpha_
查看交叉验证选中的alpha
cv_values_
调用所有交叉验证的结果,只有当 store_cv_values=True 的时候才能够调用,因此返回的 结构是(n_samples, n_alphas)
重要接口含义
score
调用Ridge类不进行交叉验证的情况下返回的R平方

四、Lasso(解决多重共线性问题)

        Lasso 全称 最小绝对收缩 和 选择算子 (least absolute shrinkageand selection operator)。和 岭回归一样,Lasso 是 被创造来 作用于 多重共线性问题的 算法,Lasso 使用的是系数 w 的 L1范式(L1范式则是系数w的绝对值)乘以 正则化系数 a,所以 Lasso 的损失函数 表达式为:

        使用 最小二乘法来求解 Lasso 中的 参数 w,对损失函数 进行求导:

         Lasso 无法解决特征之间 “精确相关” 的问题。当使用 最小二乘法 求解线性回归 时,如果 线性回归 无解 或者 报除零错误,换 Lasso 不能解决任何问题。

        幸运的是,在现实中 会 比较少遇到 “精确相关” 的多重共线性问题,大部分 多重共线性 问题应该是 “高度相关”,而 如果我们假设方阵 X^TX 的逆是一定存在的,那可以有:

        通过 增大 a,可以为 w 的计算 增加一个 负项,从而 限制参数估计中 w 的大小,而 防止多重共线性 引起的 参数 w 被估计 过大导致 模型失准的 问题。Lasso 不是 从根本上 解决多重共线性问题,而是 限制多重共线性带来的影响。

class sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_ state=None, selection=‘cyclic’)

        比起岭回归,Lasso 所带的 L1 正则项 对于系数的 惩罚要 重得多,并且 它会 将系数 压缩至 0,因此 可以被用来 做特征选择。也因此,往往让 Lasso 的正则化 系数 a 在很小的 空间中变动,以此来 寻找最佳的正则化系数。

# 使用交叉验证的Lasso类

class sklearn.linear_model.LassoCV (eps=0.001, n_alphas=100, alphas=None,  fit_intercept=True, normalize=False, precompute=’auto’, max_iter=1000, tol=0.0001, copy_X=True, cv=’warn’, verbose=False, n_jobs=None, positive=False, random_state=None, selection=’cyclic’)
参数含义
eps
正则化路径的长度,默认0.001
n_alphas
正则化路径中 的个数,默认100
alphas
需要测试的正则化参数的取值的元祖,默认 None 。当不输入的时候,自动使用 eps n_alphas 来自动生成带入交叉验证的正则化参数
cv
交叉验证的次数
属性含义
alpha_
调用交叉验证选出来的最佳正则化参数
alphas_
使用正则化路径的长度和路径中 的个数来自动生成的,用来进行交叉验证的正则化参数
mse_path
返回所以交叉验证的结果细节
coef_
调用最佳正则化参数下建立的模型的系数

五、多项式回归(解决非线性问题)

        非线性模型能够 拟合 或 处理 线性数据。线性数据 对于非线性模型来说 太过简单,很容易就把训练集上的 R^2 训练得很高。

        线性模型若用来 拟合非线性数据 或者 对非线性可分的数据 进行分类,那通常都会 表现糟糕。改善线性 模型 在非线性数据上 的效果的方法之一 时进行分箱,并且从 下图来 看分箱的 效果非常好,甚至 高过一些非线性模型。

线性模型非线性模型
代表模型
线性回归,逻辑回归,弹性网,感知机决策树,树的集成模型,使用高斯核的SVM
模型特点
模型简单,运行速度快模型复杂,效果好,但速度慢
数学特征:回归
自变量是一次项自变量不都是一次项
分类
决策边界上的自变量都是一次项决策边界上的自变量不都是一次项
可视化: 回归
拟合出的图像是一条直线拟合出的图像不是一条直线
分类
决策边界在二维平面是一条直线决策边界在二维平面不是一条直线
擅长数据类型
主要是线性数据,线性可分数据所有数据

    补充:

        当获 得数据 时,往往 希望 使用线性 模型 来 对数据进行 最初的拟合( 线性回归用于回归,逻辑回归 用于分类 ),如果线性 模型 表现良好,则 说明数据 本身很 可能是 线性的或者 线性可分 的,如果 线性模型 表现糟糕,那毫无疑问 我们 会投入 决策树,随机森林 这些模型的 怀抱,就 不必浪费时间 在线性模型 上了。

        除了 分箱 之外,另一种更普遍 的 用于解决 “线性回归只能处理线性数据” 问题的手段,就是使用多项式回归对线性回归进行改进。这样的手法 是 机器学习研究者们 从支持向量机 中 获得的:支持向量机 通过升维 可以 将非线性可 分数据转 化为 线性可分,然后 使用核函数 在低维空间中 进行计算,这是一种 “高维呈现,低维解释” 的思维。我们也 可以让 线性回归 使用 类似于 升维的 转换,将数据 由非线性转换 为线性,从而 为线性 回归赋予处理 非线性数据 的能力。

        多项式变化:这是一种 通过 增加 自变量上的 次数,而 将数据 映射到 高维空间的 方法,只要 设定一个 自变量上的 次数(大于 1),就可以 相应地 获得数据投影 在高次方的 空间中的 结果。

        当原始特征为 二维 的时候,多项式 的 二次变化 突然 将特征 增加到了 六维,其中 一维是常量(截距)。当继续 适用 线性回归去拟合的时候,我们会 得到的方程如下:

         当进行多项式转换的时候,多项式会 产出到 最高次数 为止的 所有低 高次项。如果 太过分的 共线性还是会 影响到模型 的拟合。因此 sklearn 中存在着 控制是否要 生成平方 和 立方项的 参数 interaction_only,默认为 False,以减少共线性(只生成交互项)

        随着 原特征矩阵的 维度上升,随着 我们规定的 最高次数的 上升,数据 会变得 越来越复杂,维度 越来越多,并且 这种维度的 增加 并不能用太简单的 数学公式表达出来。因此,多项式回归 没有固定的模型表达式,多项式回归的 模型最终长什么 样子是 由数据 和 最高次数决定的。

class sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_ bias=True)
参数
含义
degree
多项式中的次数,默认为 2
interaction_only
布尔值是否只产生交互项,默认为 False
include_bias
布尔值,是否产出与截距项相乘的 ,默认 True

     补充:多项式回归是线性还是非线性模型?

            来看 原始特征 为二维,多项式 次数 为 二次的 多项式回归 表达式:

            

        经过变化后的 数据有 六个特征,分别是:

        从 第四个特征 开始,都是 高次特征,而这些 高次特征 与 y 之间的 关系 必然 不是线性的。但也 可以换—种方式 来思考 这个问题:假设 我们不知道 这些特征 是由多项式变化 改变来的,只是 拿到了 含有 六个特征的 任意数据,于是 现在对于 我们来说这 六个特征就是:

         通过检验发现,z1 和 z4、z5 之间存 在一定的 共线性,z2 也是如此,但是 现实中的数据 不太可能 完全不相关,因此 一部分的 共线性是 合理的。所以 使用 线性回归 来对 数据进行拟合,然后得到了方程:

        多项式正是 利用线性回归的这种 “扭曲”,为线性模型赋予了 处理非线性数 据的能力。

六、回归类的模型评估指标

        在回归类算法中,有 两种不同的 角度来 看待回归的效果:① 是否预测到了正确的数值。② 是否拟合到了足够的信息。这两种角度,分别 对应着不同的 模型评估指标。

1. 是否预测到了正确的数值

(1)均方误差

        均方误差,本质是在 RSS 的基础上 除以了 样本总量,得到了 每个样本量上的 平均误差。有了 平均误差,就可以 将平均误差 和 我们的标签的 取值范围 在一起比较,以此 获得—个较为可靠的评估依据。

        在 sklearn 当中,有两种方式 调用 这个评估指标,一种是使用 sklearn 专用的模型评估模块 metrics 里的类 mean_squared_error,另一种是 调用 交叉验证的类 cross_val_score 并使用里面的 scoring 参数来设置使用均方误差

        我们 在决策树 和 随机森林中 都提到过,虽然 均方误差永远 为正,但是 sklearn 中的 参数scorin g下,均方误差 作为评判标准时,却是计算 “负均方误差”(neg_mean_squared_error)。这是因为 sklearn 在 计算模型评估指标的 时候,会 考虑指标本身的 性质,均方误差 本身是一种 误差,所以被 sklearn 划分为模型的 一种损失(loss)。在 sklearn 当中,所有的损失都使用负数表示,因此 均方误差也 被显示为 负数了。真正的 均方误差 MSE 的数值,其实就是 neg_mean_squared_error 去掉负号的 数字。

(2)绝对均值误差

        MAE(Mean_absolute_error,绝对均值误差)。其表达的 概念与均方误差 完全一致,在 真实标签 和 预测值之间的差异外 使用的是 L1 范式(绝对值)。

        在 sklearn 中,使用 命令 from sklearn.metrics import mean_absolute_error 来调用 MAE,同时,也可以使用交叉验证中的 scoring="neg_mean_absolute _error",以此在 交叉验证时调用 MAE。

2. 是否拟合到了足够的信息

        这张图,其中 红色线 是真实标签,而 蓝色线 是拟合模型。对于 这样的一个 拟合模型,如果使用 MSE 来对它 进行判断,它的 MSE 会很小,因为 大部分 样本其实都 被完美拟合了,少数样本的 真实值 和 预测值 的巨大 差异在 被均分到 每个样本上之后,MSE 就会很小。但 这样的 拟合结果 必然不是一个 好结果,因为 一旦新样本 是处于 拟合曲线的 后半段的,预测结果 必然会有巨大的偏差。

        我们定义了 R^2 来帮助我们:

         其中 y 是真实标签,\hat{y_i} 是预测结果,\overline{y} 是均值,y_i-\overline{y} 如果除以 样本量 m 就是方差。方差的 本质 是 任意一个 y 值和样本均值的 差异,差异越大,这些值所带的 信息越多。在 R^2 中,分子 是真实值 和 预测值之差的 差值,也就是 模型没有捕获到的 信息总量,分母 是真实标签 所带的 信息量,所以其衡量的是 1 - 我们的模型没有捕获到的信息量占真实标签中所带的信息量的比例,所以,R^2 越接近 1 越好

        R^2 可以使用三种方式来调用:① 直接从 metrics 中导入 r2_score,输入 预测值和真实值 后打分。② 直接 从线性回归 LinearRegression 的的接口 score 来进行调用。③ 是在交叉验证中,输入 “r2” 来调用。

七、sklearn中的线性回归(自查)

        涉及模块:linear_model

类 / 函数含义
普通线性回归
linear_model.LinearRegression
使用普通最小二乘法的线性回归
岭回归
linear_model.Ridg
一种将 L2 作为正则化工具的线性最小二乘回归
linear_model.RidgeCV
带交叉验证的岭回归
linear_model.RidgeClassifier
岭回归的分类器
linear_model.RidgeClassifierCV
带交叉验证的岭回归的分类器
linear_model.ridge_regression
【函数】用正太方程法求解岭回归
LASSO
linear_model.Lasso
使用 L1 作为正则化工具来训练的线性回归模型
linear_model.LassoCV
带交叉验证和正则化迭代路径的 Lasso
linear_model.LassoLars
使用最小角度回归求解的 Lasso
linear_model.LassoLarsCV
带交叉验证的使用最小角度回归求解的 Lasso
linear_model.LassoLarsIC
使用 BIC 或 AIC 进行模型选择的,使用最小角度回归求解的Lasso
linear_model.MultiTaskLasso
使用 L1 / L2 混合范数作为正则化工具训练的多标签Lasso
linear_model.MultiTaskLassoCV
使用 L1 / L2 混合范数作为正则化工具训练的,带交叉验证的多标签 Lasso
linear_model.lasso_path
【函数】用坐标下降计算 Lasso 路径
弹性网
linear_model.ElasticNet
一种将 L1 和 L2 组合作为正则化工具的线性回归
linear_model.ElasticNetCV
带交叉验证和正则化迭代路径的弹性网
linear_model.MultiTaskElasticNet
多标签弹性网
linear_model.MultiTaskElasticNetCV
带交叉验证的多标签弹性网
linear_model.enet_path
【函数】用坐标下降法计算弹性网的路径
最小角度回归
linear_model.Lars
最小角度回归(Least Angle RegressionLAR
linear_model.LarsCV
带交叉验证的最小角度回归模型
linear_model.lars_path
【函数】使用 LARS 算法计算最小角度回归路径或 Lasso 的路径
正交匹配追踪
linear_model.OrthogonalMatchingPursuit
正交匹配追踪模型(OMP
linear_model.OrthogonalMatchingPursuitCV
交叉验证的正交匹配追踪模型(OMP
linear_model.orthogonal_mp
【函数】正交匹配追踪(OMP
linear_model.orthogonal_mp_gram
【函数】Gram正交匹配追踪(OMP
贝叶斯回归
linear_model.ARDRegression
贝叶斯  ARD  回归。 ARD  是自动相关性确定回归( Automatic Relevance Determination
Regression ),是一种类似于最小二乘的,用来计算参数向量的数学方法。
linear_model.BayesianRidge
贝叶斯岭回归
其他回归
linear_model.PassiveAggressiveClassifier
被动攻击性分类器
linear_model.PassiveAggressiveRegressor
被动攻击性回归
linear_model.Perceptron
感知机
linear_model.RANSACRegressor
RANSACRANdom SAmple Consensus)算法。
linear_model.HuberRegressor
胡博回归,对异常值具有鲁棒性的一种线性回归模型
linear_model.SGDRegressor
通过最小化 SGD 的正则化损失函数来拟合线性模型
linear_model.TheilSenRegressor
Theil-Sen 估计器,一种鲁棒的多元回归模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(寄中寄) docker destop 的wsl问题——记一次在win10虚拟机的上的启动docker

🎪🎢🎡🎠🤡🦁 在win10上可能可以用docker,不过在win10上用docker有点不可能 wsl在windows中可能需要安装,不过wsl在windows安装有点不可能 应该是不用安装吧 可能需要重启 然后 …

移动运维APP项目建设:重塑运维服务新范式

在当今信息化高速发展的时代,信息系统已成为企业运营的核心支撑。为确保信息系统稳定、高效运行,运维团队面临着前所未有的挑战。传统运维方式受限于固定场所和设备,难以满足随时随地访问、快速响应等现代运维需求。因此,依托现有…

uniapp自定义navigationBar

最终效果: 一、关闭默认导航栏 pages.json文件中,对单个页面关闭 "navigationStyle": "custom" "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pag…

IP地址证如何实现HTTPS访问?(内网IP、公网IP)

IP地址证书(全称为IP地址的SSL/TLS证书)是实现通过IP地址进行HTTPS访问的关键。以下是实现这一目标的详细步骤: 一、选择证书颁发机构(CA) 1.选择支持IP证书的CA:并非所有证书颁发机构都提供为IP地址颁…

(计算机网络)网络层

目录 一.网络层提供哪种服务 二.两种服务的比较 三.ip协议 四.ip地址 五.ip地址的分类 六.子网掩码 七.路由器介绍 一.网络层提供哪种服务 1.ip地址--唯一的标识互联网上的某一台主机 2. 虚电路:虚拟的电路 二.两种服务的比较 ip数据报,不需要建…

航空航天构型管理

构型管理(CM)被定义为在产品的生命周期中应用的SE技术和管理规程。CM的五个原则是:CM计划与执行、配置识别、配置变更和差异控制、配置状态核算和配置验证。 广义上的构型管理规划和管理是有效实施配置管理的关键。特别是在不同项目之间的差异中,构型管理…

网络协议九 应用层 HTTPS

一 什么是 HTTPS 二 什么是 SSL/TLS 协议 ,TLS 是 SSL 升级后的名字 三. TLS 协议 工作在那一层 四 。OpenSSL 是 SSL/TLS协议的开源实现。 五。重点 HTTPS 的通讯过程 六 TLS 1.2 的连接过程 1. client hello 是浏览器发送给服务器的第一条信息, 是客户…

Ubuntu24.04安装 Mysql 并修改root密码 + 配置

参考文章:Ubuntu安装MySQL 一、下载并安装 MySQL 1、安装 mysql 服务端 yammiemy-pc >/opt $ sudo apt-get install mysql-server 2、安装 mysql 客户端 yammiemy-pc >/opt $ sudo apt-get install mysql-client 3、安装程序编译时连接的库 yammiemy-pc &…

【06】JVM是如何实现反射的?

为了保证框架的可扩展性,往往借助 Java 的反射机制,根据配置文件来加载不同的类。Spring 框架的依赖反转(IoC),便是依赖于反射机制。 反射调用的实现 这里主要是以【方法的反射调用】来进行剖析 public final class…

cocosUI多分辨率适配

需求:由于各个设备的分辨率和尺寸并不一样,所以需要一套适配系统去很好的针对不同的设备分辨率或尺寸进行适配,以给玩家一个很好的游戏体验。 目前的主流适配方案 目前,针对不同设备的适配,主流的方案通常包括以下几种…

OpenHarmony4.1上初体验rust

OpenHarmony4.1上初体验rust 前言一、准备工作二、初步调研三、初步尝试运行测试demo 四、尝试构建自己的hello world五、与C、C的交互总结 前言 由于后续可能要做rust基于OpenHarmony的开发工作,于是先开始一些调研性的工作,rust了解的内容可以参考该文…

雷达气象学(6)——径向速度图分析

文章目录 6.1 速度场分析基础6.1.1 速度图分析的基本方法6.1.2 练习:整层为均匀西风6.1.3 练习:风向随高度顺转 6.2 水平均匀风场的典型图像6.3 典型天气系统的判别6.3.1 锋面(切变线)系统6.3.1.1 冷锋(冷式切变线&…

苹果是如何成为一家以产品力驱动的公司

最近在看苹果的HIG(开发者指南)文档,深刻的体会到设计/产品能力对于用户的重要性,为什么苹果会有“设计可以改变一切”“产品即营销”这样的理念,而苹果也的的确确成为了少数以产品驱动的科技公司。 文档本身有六部分…

【数据结构详解】——归并排序(动图详解)

目录 🕒 1. 归并排序🕘 1.1 递归实现🕘 1.2 非递归实现 🕒 1. 归并排序 💡 算法思想:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子…

蓝牙资讯|AirPods Pro 2推送最新开发者版固件,支持点头摇头控制Siri

苹果面向开发者推送了 AirPods Pro 2 的最新固件更新,版本号为 7A5266c。这并非一次常规更新是为即将在秋季发布的 iOS 18 系统做准备。 根据官方信息,新固件将为 AirPods Pro 2 引入一系列新功能,包括点头或摇头控制 Siri、增强嘈杂环境下…

Visual Studio Code 使用Git详细教程

再集成之前请确保已经安装Visual Studio Code 和Git,并且可以找到Git文件地址。如果找不到可以在系统环境变量里面看一眼之前的配置-需要找到Git下面的cmd目录,一会配置使用。 打开 Visual Studio Code找到设置根据图片指引 1.找到左下角设置按钮 2.展开…

支付宝沙箱模拟支付的实现

目录 1.登录支付宝开发平台 2.使用沙箱模拟支付 3.后端代码 4.前端代码 现在几乎所有应用或者网站都需要接入支付接口,因为一个产品最终目的还是要赚钱,所以我们今天就使用支付宝提供的模拟支付的接口来实现这个功能。 1.登录支付宝开发平台 支付宝…

deepin V23前瞻丨deepin V23与飞腾腾锐D3000完成适配,持续丰富deepin操作系统硬件生态

查看原文 近日,自主核心芯片研发飞腾公司宣布与deepin V23完成适配,包含飞腾新一代桌面CPU飞腾腾锐D3000、FT-2000/64、桌面芯片飞腾腾锐D2000等多款产品,为用户带来更智能、安全、稳定的使用体验。 飞腾腾锐D3000集成8个飞腾自主研发的新一…

微服务-分布式事务-seata

1. 事务 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列SQL操作,这些操作作为一个整体一起向系统提交,要么执行,要么都不执行 1.1 ACID事务的特点 原子性:针对同一事务,要么都完成,要么都不完成 一致…

实例讲解Jmeter参数化的四种方式

JMeter的四种参数化方式包括: 1.用户参数(UserParameters):适用于参数取值范围很小的时候使用 2.函数助手(FunctionHelper):可作为其他参数化方式的补充项,如:随机数生成…