当前位置: 首页 > news >正文

查询公司的网站备案信息/百度大数据查询平台

查询公司的网站备案信息,百度大数据查询平台,国外二维码在线查询,wordpress 双栏目目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理(LinearRegression) 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归(解决多重共线性问题) 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…

 

目录

一、认识线性回归

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 估计器,一种鲁棒的多元回归模型

相关文章:

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

目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理(LinearRegression) 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归(解决多重共线性问题) 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…...

Go 语言切片(Slice) 15

在 Go 语言中,切片(Slice)是一种可以容纳多个值的数据结构,它可以被视为一个可变的数组。切片是一个引用类型,它可以容纳任意类型的值,可以是整数、字符串、浮点数、结构体等。 切片的声明方式是使用 [] 语法,例如&am…...

嵌入式开发--STM32G030C8T6,写片上FLASH死机CFGBSY和写入出错

故障现象1 G0系列,写片上FLASH时,经常死机,而且按复位键都没用,属于不断电都救不回来的那种死法。这种情况一般是由硬件置位了某个标志导致,只有断电才能故障复原。 故障查找 检查FLASH的相关寄存器,发现…...

通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用

本文仅供学习交流用途 文中出现的信息仅为演示需要 请勿以任何方法剽窃、盗用任何视频作者的任何视频 有时候遇到一些素材想保存下来,但是网站不给保存,无论视频是否允许转载。这篇介绍一下最近发现的一个保存视频的方法。 不会介绍Fiddler了&#xf…...

企业为什么需要安装加密软件

1. 数据保护 防止数据泄露:加密软件通过对敏感数据进行加密处理,确保即使数据在传输或存储过程中被截获,也无法被未授权人员读取或利用,从而有效防止数据泄露。 完整性保护:加密不仅保护数据的机密性,还通…...

Spring Web MVC入门(下)

1. 响应 1.1 返回静态页面 创建前端页面&#xff0c;如下图所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Index页面</title> </head> <body>Hello,Spring MVC…...

uniapp app中使用柱状图 折线图 圆环图和饼图

实现思路 借助echarts.min.js 搭配l-echart进行配置 废话不多说上代码后自己百度了解配置项的意思就好 下面代码是折线图的 &#xff0c;柱状图和它一摸一样&#xff0c;只需要把line换成bar就好 <template><l-echart ref"chart"></l-echart> …...

jmreport测试数据库出现 权限不足,此功能需要分配角色 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 关于jmreport的补充可看官网:jmreport上线安全配置 1. 问题所示 jmreport测试数据库出现,出现如下所示的问题:权限不足,此功能需要分配角色! 截图如下所示: 2. 原理分析 对于原理分析的Bug,代表当前用户没有足够的…...

这是啥设计模式-适配模式

有一个广告召回系统&#xff0c;输入用户id就可以给用户推荐相应的广告&#xff0c;一开始我们只有布尔检索和向量检索两种方式。 1. 面向接口编程&#xff0c;而非实现 第一点就是定义接口&#xff0c;客户端关注的是接口&#xff0c;对客户端来说&#xff0c;他只关心检索引…...

大语言模型(LLMs)Tokenizers详解

Tokenizers是大语言模型&#xff08;Large Language Models&#xff0c;LLMs&#xff09;中用于将文本分割成基本单元&#xff08;tokens&#xff09;的工具。这些工具不仅影响模型的输入表示&#xff0c;还直接影响模型的性能和效率。以下是对Tokenizers的详细解释&#xff1a…...

分支-快排/归并---1

目录 1.排序数组 2.数组中的第K个最大元素 3.最小k个数 4.排序数组&#xff08;归并&#xff09; 5.数组中的逆序对 6.计算右侧小于当前元素的个数 7. 翻转对 1.排序数组 快排的写法有很多&#xff0c;这里我采取了相对快的三路划分加随机基准值。 三路划分&#xff0c;是…...

代码随想录训练营 Day32打卡 动态规划 part01 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

代码随想录训练营 Day32打卡 动态规划 part01 一、 理论基础 动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推导&#xff0c;而是从局部直接选最优的。 例如&#xff1a;有N件物品和一个最多能背重量为W 的背包…...

【智能流体力学】剖析ANSYS Fluent材料属性设定与边界条件

目录 一、材料属性设定**1. 材料属性的概述****功能****2. 材料属性的类型****标准材料库****多相流****燃烧模型****传热模型****辐射模型****3. 属性设置与函数****4. 自定义材料数据库****5. Granta数据库支持**二、边界条件**1. 通用边界条件****Pressure Inlet (压力-入口…...

微信小程序反编译工具

目录 介绍 工程结构还原 微信开发者工具运行 如何查看当前运行版本? 开启小程序F12 重新打包运行 效果示例 安装 用法 参数说明 获取微信小程序AppID 文件夹名即为AppID 下载地址 介绍 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器, 自…...

线程基本概念

一、进程的结束 wait(阻塞) 一般不做额外的事情 wait(非阻塞) 逻辑不受影响&#xff08;必须套在循环中&#xff09; wait作用&#xff1a;1.获取子进程退出状态 2.回收资源 传参为指针&#xff1a;被调修改主调 获取退出状态值&#xff1a; WIFEXITED 判断是否…...

在SpringBoot中执行后台任务

在 Spring Boot 中执行后台任务通常涉及到使用线程池和定时任务。Spring Boot 提供了多种方式来实现后台任务&#xff0c;包括使用 Scheduled 注解、ThreadPoolTaskExecutor 和 ExecutorService。 下面我将详细介绍如何使用这些方法来实现后台任务。 使用 Scheduled 注解 Sp…...

【网络】UDP回显服务器和客户端的构造,以及连接流程

回显服务器&#xff08;Echo Server&#xff09; 最简单的客户端服务器程序&#xff0c;不涉及到业务流程&#xff0c;只是对与 API 的用法做演示 客户端发送什么样的请求&#xff0c;服务器就返回什么样的响应&#xff0c;没有任何业务逻辑&#xff0c;没有进行任何计算或者…...

【智能流体力学】ANSYS Fluent工作流程设置、求解和后处理详解

目录 一、设置阶段1. **模型****功能** :**详细说明及原理** :2. **材料****功能** :**详细说明及原理** :3. **单元区域条件****功能** :**详细说明及原理** :4. **边界条件****功能** :**详细说明及原理** :5. **网格交界面****功能** :**详细说明及原理** :6. **动…...

最新UI六零导航系统源码 | 多模版全开源

六零导航页 (LyLme Spage) 致力于简洁高效无广告的上网导航和搜索入口&#xff0c;支持后台添加链接、自定义搜索引擎&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广&#xff0c;简约而不简单。 使用PHPMySql&#xff0c;增加后台管理 多模板选择&#xff0c;支持在…...

K8S中使用英伟达GPU —— 筑梦之路

前提条件 根据不同的操作系统&#xff0c;安装好显卡驱动&#xff0c;并能正常识别出来显卡&#xff0c;比如如下截图&#xff1a; GPU容器创建流程 containerd --> containerd-shim--> nvidia-container-runtime --> nvidia-container-runtime-hook --> libnvid…...

2024-2025年最值得选的Java计算机毕业设计选题大全:800个热门选题

一、前言 博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ…...

libnl教程(2):发送请求

文章目录 前言示例示例代码构造请求创建套接字发送请求 简化示例 前言 前置阅读要求&#xff1a;libnl教程(1):订阅内核的netlink广播通知 本文介绍&#xff0c;libnl如何向内核发送请求。这包含三个部分&#xff1a;构建请求&#xff1b;创建套接字&#xff1b;发送请求。 …...

【软件测试】功能测试理论基础

目录 项目的测试流程&#x1f3f4; 需求评审 评审形式 测试人员在需求评审中职责 测试计划与方案 测试计划 问题 测试方案&#x1f3f4; 测试计划与方案的对比 功能测试设计&#x1f3f4; 测试设计的步骤 项目的测试流程&#x1f3f4; 作用&#xff1a; 有序有效开展…...

玩机进阶教程-----回读 备份 导出分区来制作线刷包 回读分区的写入与否 修改xml脚本

很多工作室需要将修改好的系统导出来制作线刷包。前面分享过很多制作线刷包类的教程。那么一个机型中有很多分区。那些分区回读后要写入。那些分区不需要写入。强写有可能会导致不开机 不进系统的故障。首先要明白。就算机型全分区导出后在写回去 都不一定可以开机进系统。那么…...

MongoDB 插入文档

MongoDB 插入文档 MongoDB 是一个流行的 NoSQL 数据库,它使用文档存储数据。在 MongoDB 中,数据以 BSON(Binary JSON)格式存储,这是一种二进制表示的 JSON 格式。MongoDB 提供了灵活的数据模型,使得插入和查询文档变得非常简单。本文将详细介绍如何在 MongoDB 中插入文档…...

【内网】服务器升级nginx1.17.0

今天用rpm包升级内网nginx版本&#xff0c;上来就给我报错 警告&#xff1a;nginx-1.27.0-2.el7.ngx.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 7bd9bf62: NOKEY 错误&#xff1a;依赖检测失败&#xff1a; libcrypto.so.10()(64bit) 被 nginx-1:1.27.0-2.el7.ngx.x…...

歌曲爬虫下载

本次编写一个程序要爬取歌曲音乐榜https://www.onenzb.com/ 里面歌曲。有帮到铁子的可以收藏和关注起来&#xff01;&#xff01;&#xff01;废话不多说直接上代码。 1 必要的包 import requests from lxml import html,etree from bs4 import BeautifulSoup import re impo…...

transformer-explainer

安装和启动 找到这个项目&#xff0c;然后装好了。 这个项目的目的如名字。 https://github.com/poloclub/transformer-explainerTransformer Explained: Learn How LLM Transformer Models Work with Interactive Visualization - poloclub/transformer-explainerhttps:/…...

C#中的S7协议

S7协议-S7COMM S7COMM 进行写 CTOP->PDU type已知枚举值 0X0E连接请求0x0d连接确认0x08断开请求0x0c断开确认0x05拒绝访问0x01加急数据0x02加急数据确认0x04用户数据0x07TPDU错误0x0f数据传输 S7Header->ROSCTR已知枚举值 0X01JOB REQUEST。主站发送请求0x02Ack。从站…...

2024-08-16升级记录:使用Android RecyclerView控件显示列表型信息

在页面上使用RecyclerView实现一个列表型信息展示&#xff1a; 步骤如下&#xff1a; 一、在页面布局中添加RecyclerView控件 <TextViewandroid:id"id/txt_gnss_info"android:layout_width"match_parent"android:layout_height"wrap_content"…...