线性回归的基本概念以及正规方程(二)

简介: 本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。

2.2.5 带截距的线性方程

2.2.5.1 增加截距 12

🚩上述八元一次方程的解其实就是:

image.png

y = y + 12
display(y)
model = LinearRegression(fit_intercept = True)
# fit:健身,训练;特质算法、模型训练,拟合
# 数据 X 和 y 之间存在规律,拟合出来,找到规律
model.fit(X, y)
b_ = model.intercept_
print('截距是:', b_)
w_ = model.coef_
print('斜率是:', w_)
print('方程的解为:', X.dot(w_) + b_)

2.png

我们可以看出,求出来的截距虽然不是我们加上的 12,斜率也不是我们之前求过的解,但是这两个结合起来确确实实是方程的解。

image.png

求出的不是我们期望的结果,但是是符合题意的结果,这是因为,一旦我们规定了 fit_intercept = True,那么在计算机进行解方程的时候,就不会使用正规方程去进行运算

2.2.5.2 修改数据 X

🚩我们根据 1.5 多元线性回归 所讲过的对X进行修改:即给X所代表的矩阵中在最后一列的位置增加一个-1:

X = np.concatenate([X, np.full(shape = (8, 1), fill_value = 1)], axis = 1)
display(X, y)

3.png

那么这个数据,相比较与最开始的八元一次方程,我们让 X 增加了一列,y 增加了 12 ,那么接下来进行正规方程的计算:

model = LinearRegression(fit_intercept = False)
model.fit(X, y)
display(model.coef_, model.intercept_)

image.png

image.png

W = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
W

image.png

可以看出即使是使用我们推导出的正规方程也和我们期待的相差甚远,我们来查看一下此时的X

X.shape

image.png

这意味着,我们有八个方程,但是我们有九个未知数,显然,对于这样的一个方程组,我们并非只有一组解,而是有无穷多组解,这也是我们产生偏差的原因。


你或许有疑问,既然有无穷多组解,那么每次运行的结果应该是不同的,为什么对于正规方程每次运行的结果确实相同的:这是因为算法会默认给我们算出一个 最优解,所以我们要有唯一解,就需要我们人为的添加一个方程:

# w就是标准的解
w = np.array([ 1.,  5., 15.,  3.,  8.,  4., 17., 12.])
# 造一个方程出来
X9 = np.random.randint(-15, 15, size = 8)
display(X9)

image.png

接下来对于这个方程我们按照增加 12 截距和修改数据的方法来改变这个方程:

# 上面的8个方程,都有截距12,第九个方程也是如此
X9.dot(w) + 12
y = np.concatenate([y, [X9.dot(w) + 12]])
y
X9 = np.concatenate([X9, [1]])
X9
X = np.concatenate([X, [X9]])
X

4.png

以上操作后我们就处理好了 X  和 y ,那么接下来,就是见证奇迹的时刻:

# 计算正规方程
np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)

image.png

使用线性回归:

model = LinearRegression(fit_intercept = False)
model.fit(X, y)
display(model.coef_)

image.png

那么这还是有些区别,因为我们想要的是截距以及斜率,但是此时我们只有斜率,故我们可以把 fit_intercept 设置为 True

model = LinearRegression(fit_intercept = True)
model.fit(X, y)
display(model.coef_, model.intercept_)

image.png

截距是不是离我们的真实值特别靠近啦,此时我们只需要进行四舍五入即可,对于值为 0  的解,即我们自定义出来的 X 9 ,0  代表其没有权重,故我们可以舍去它

model = LinearRegression(fit_intercept = True)
model.fit(X[:,:-1], y)
display(model.coef_, model.intercept_.round())

image.png

芜湖!大功告成!!!


2.3 矩阵转置公式与求导公式

转置公式如下:

image.png

求导公式如下:

image.png

2.4 推导正规方程 θ 的解

  1. 矩阵乘法公式展开

image.png

  1. 进行求导(注意X、y是已知量,θ \thetaθ 是未知数):

image.png

  1. 根据上面求导公式进行运算:

image.png


  1. 令导数J ′ ( θ ) = 0 :

image.png

  1. 矩阵没有除法,使用逆矩阵进行转化:

image.png

到此为止,公式推导出来了~

image.gif

2.5 凸函数判定

🚩判定损失函数是凸函数的好处在于我们可能很肯定的知道我们求得的极值即最优解,一定是全局最优解。

image.png

如果是非凸函数,那就不一定可以获取全局最优解,如下图:

image.png

来一个更加立体的效果图:

image.jpeg

判定凸函数的方式: 判定凸函数的方式非常多,其中一个方法是看 黑塞矩阵 是否是 半正定 的。

image.png

目录
相关文章
|
安全 Shell 网络安全
|
机器学习/深度学习 人工智能 小程序
【一步步开发AI运动小程序】三、运动识别处理流程
随着人工智能技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等AI运动APP备受关注。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章介绍了视频帧、帧率FPS、抽帧和人体识别等基本概念,并详细说明了处理流程,包括抽帧、人体识别检测、骨骼图绘制和运动分析等步骤。下篇将介绍如何在小程序中实现抽帧。
|
数据采集 缓存 监控
代理IP在产品运营中的重要作用
在数字化时代,代理IP作为重要网络工具,通过突破地域限制、优化网络性能、保护数据安全、高效抓取市场数据、应对IP封锁及优化广告投放,助力企业实现业务增长和市场拓展。本文详细解析代理IP的作用与应用案例,为企业产品运营提供参考。
200 1
|
安全 机器人
Nature子刊:人机融合即将成真!纳米机器人杀死癌细胞,肿瘤生长抑制70%
【7月更文挑战第9天】DNA纳米机器人成功抑制小鼠体内癌细胞生长70%,展示出人机融合治疗癌症的前景。卡罗林斯卡学院科学家利用DNA构造的纳米机器人,识别并选择性攻击癌细胞,其pH敏感设计确保只在肿瘤微环境中激活,减少对健康细胞的影响。尽管需进一步研究优化设计及进行临床试验,这一创新为癌症疗法带来新希望。[链接](https://www.nature.com/articles/s41565-024-01676-4)**
505 1
|
机器学习/深度学习 人工智能 自然语言处理
从文字到视频:借助ChatGPT与剪映轻松生成高质量视频
从文字到视频:借助ChatGPT与剪映轻松生成高质量视频
928 0
|
存储 Unix 程序员
非常详细!操作系统基础【文件系统实现】
非常详细!操作系统基础【文件系统实现】
|
弹性计算
阿里云ECS云服务器更换公网IP的方法
阿里云ECS云服务器可以更换公网IP吗?当然可以,更换公网IP是有条件的有时间限制的,分两种情况,请听云服务器吧娓娓道来: ECS云服务器可以更换公网IP吗? 当然可以!在实际的更换IP场景中,主要有两种情况,一种情况是ECS创建6小时内更换公网IP,另一种是ECS实例创建超过6小时后更换公网IP: 情况一:ECS创建6小时内更换公网IP 新购的ECS云服务器,在创建6小时内可以免费更换公网IP,最多更换3次。
25026 1
|
数据采集 人工智能 物联网
用Gamma一键生成PPT,智能AI改变未来工作方式
用Gamma一键生成PPT,智能AI改变未来工作方式
2572 1
用Gamma一键生成PPT,智能AI改变未来工作方式
|
数据安全/隐私保护
手机键盘密码
手机键盘密码
413 0
|
SQL 消息中间件 分布式计算
基于开放共享的自主研发—MaxCompute 持续增强生态与开放性建设
MaxCompute 是阿里巴巴自研的云原生数据仓库,同时也兼容大部分大数据生态系统。一个平台无法实现所有功能和解决所有问题,MaxCompute 需持续增强生态与开放性建设,方能走得更远。
1431 2
基于开放共享的自主研发—MaxCompute 持续增强生态与开放性建设