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

 

目录

一、认识线性回归

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.rhkb.cn/news/400097.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

景联文科技:破解数据标注行业痛点,引领高质量AI数据服务

数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展,对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下,管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…

Pod的调度机制

文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…

Linux驱动入门实验班——LED驱动(附百问网视频链接)

目录 一、确定引脚编号 二、编写思路 2.1驱动层 2.2应用层 三、源码 四、实现 课程链接 一、确定引脚编号 首先,可以在开发板上执行如下命令查看已经在使用的GPIO状态: cat /sys/kernel/debug/gpio 可以看到每个gpio都有对应的编号,…

火语言RPA--火语言界面应用多窗体详解

多窗体 界面应用建立时默认加载一个窗体,若是程序运行时需要多个窗体配合,在通常情况下,您可将多窗体绑定在UI控件事件中,由界面交互来打开多窗体。 本章将介绍下如何建立多窗体以及在应用中如何运用多窗体完成多种场景的设置。 …

源代码防泄密怎么做?最好用的12款源代码加密软件推荐

源代码是企业的核心资产之一,其安全性直接关系到产品的竞争力和市场地位。防止源代码泄密是企业信息安全中的重中之重,本文将介绍几种有效的源代码防泄密方法,并推荐12款优秀的源代码加密软件。 1. 代码审查与权限管理 通过严格的代码审查流…

【MySQL】用户管理——用户、用户信息、创建用户、删除用户、修改用户密码、数据库的权限、给用户权限、回收权限

文章目录 MySQL1. 用户管理1.1 用户1.1.1 用户信息1.1.2 创建用户1.1.3 删除用户1.1.4 修改用户密码 1.2 数据库的权限1.2.1 给用户权限1.2.2 回收权限 MySQL 1. 用户管理 为什么MySQL要引入用户管理? 如果我们只能使用root用户,这样存在安全隐患。因为r…

[C++][opencv]基于opencv实现photoshop算法可选颜色调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 SelectiveColor.hpp #ifndef OPENCV2_PS_SELECTIVECOLOR_HPP_ #define OPENCV2_PS_SELECTIVECOLOR_HPP_#include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后,发现Mariadb本机无密码才能登录 百度了很多文章,发现很多人是因为root的plugin设置的值不正确导致的,unix_socket可以不需要密码,mysql_native_password 是正常的。 解…

NLP_情感分类_预训练加微调方案

文章目录 项目背景代码导包一些模型以及训练的参数设置定义dataset定义模型读取数据声明训练及测试数据集将定义模型实例化打印模型结构模型训练测试集效果 同类型项目 项目背景 项目的目的,是为了对情感评论数据集进行预测打标。在训练之前,需要对数据…

Datawhale X 魔搭 AI夏令营 第四期魔搭-AIGC文生图方向Task2笔记

了解一下 AI生图技术 的能力&局限 对所有人来说,定期关注AI生图的最新能力情况都十分重要: 对于普通人来说,可以避免被常见的AI生图场景欺骗,偶尔也可以通过相关工具绘图 对于创作者来说,通过AI生图的工具可以快速…

全球 30 万台游戏服务器的 PlayFlow Cloud 如何通过 DigitalOcean 实现动态扩展

“我在 DigitalOcean 上首次接触了 Kubernetes。设置 Kubernetes 集群非常简单,使我能够轻松自动化扩展我们的游戏服务器。”——Haseeb Sheikh,PlayFlow Cloud 创始人兼首席执行官 PlayFlow Cloud 是由 Haseeb Sheikh 创立的,旨在通过简化游…

13 Listbox 组件

13 Listbox 组件 Tkinter 的 Listbox 组件是一个用于显示列表项的控件,用户可以从中选择一个或多个项目。以下是对 Listbox 组件的详细说明和一个使用案例。 Listbox 组件属性 基本属性 width: 控件的宽度,通常以字符数为单位。height: 控件的高度&a…

Docker 网络代理配置及防火墙设置指南

Docker 网络代理配置及防火墙设置指南 背景 在某些环境中,服务器无法直接访问外网,需要通过网络代理进行连接。虽然我们通常会在 /etc/environment 或 /etc/profile 等系统配置文件中直接配置代理,但 Docker 命令无法使用这些配置。例如&am…

Midjourney提示词——《环太平洋》机甲专场(附公式)

前言 本篇为大家带来《环太平洋》的机甲提示词,文末附公式,有需要的可以直接复制点击下方阅读原文尝试使用哦~ 1、危险流浪者 Gypsy Danger, standing tall and heroic, dramatic lighting highlighting the metal plates, deep blue and silver color…

[图解]需要≠需求-《分析模式》漫谈

1 00:00:00,760 --> 00:00:02,910 今天的《分析模式》漫谈 2 00:00:02,920 --> 00:00:04,180 我们来说一下 3 00:00:04,490 --> 00:00:06,490 需要不等于需求 4 00:00:10,490 --> 00:00:11,760 还是第一章 5 00:00:13,120 --> 00:00:15,020 这里 6 00:00:1…

双胞胎命名有哪些特别之处?如何体现两者之间的联系与区别?

双胞胎命名艺术探秘 问题: 双胞胎命名有哪些特别之处?如何体现两者之间的联系与区别? 起尔网-免费取名|大师起名|宝宝起名|新生儿取名|男孩女孩在线起名姓名测试评分网起尔网-免费在线宝宝起名|新生儿取名|男孩女孩在线起名网,龙…

数据结构(学习)2024.8.6(顺序表)

今天开始学习数据结构的相关知识,大概分为了解数据结构、算法;学习线性表:顺序表、链表、栈、队列的相关知识和树:二叉树、遍历、创建,查询方法、排序方式等。 目录 一、数据结构 数据 逻辑结构 1.线性结构 2.树…

Ubuntu20.04 源码安装 OMPL 与 Moveit

文章目录 一、源码安装OMPL1.1 先检查是否已安装二进制 ompl1.2 若已经提前安装二进制,需先行卸载1.3 OMPL官网安装教程 二、源码安装 moveit2.1 先检查是否已安装二进制Moveit2.2 源码安装 Moveit2.2.1、更新软件包2.2.2、安装依赖2.2.3、创建Moveit工作空间2.2.4…

<Qt> 系统 - 文件

目录 一、Qt文件概述 二、输入输出设备类 三、文件读写类 四、文件和目录信息类 一、Qt文件概述 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类,通过这些类能够对文件系统进行操…

Openlayers6 图形绘制和修改功能(结合React)

Openlayers常用的API了解的差不多了,就开始进入实战了,首先从绘制基本的图形开始,这里主要介绍一下绘制圆形、矩形和多边形。 通过使用openlayers的ol.interaction.Draw和ol.interaction.Modify模块实现地图上绘制圆形、矩形、多边形并修改编…