栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

3-线性回归之使用正规方程来求解线性回归问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3-线性回归之使用正规方程来求解线性回归问题

使用正规方程来求解线性回归问题

1、接续前面两小节(1-线性回归之单变量线性回归基本原理的python实现_骑着蜗牛环游深度学习世界的博客-CSDN博客和2-线性回归之多变量线性回归基本原理的python实现_骑着蜗牛环游深度学习世界的博客-CSDN博客)

2、正规方程的使用受限:

​ ①特征数不能太多,通常来说当n小于10000 时还是可以接受的

​ ②只适用于线性模型,不适合逻辑回归模型等其他模型

3、正规方程的优点:

​ ①无需进行特征缩放(即无需归一化)

​ ②不需要迭代

1正规方程原理简述
  1. 正规方程是通过求解式(1)来找出使得代价函数最小的参数的:

∂ ∂ θ j J ( θ j ) = 0 (1) frac{partial }{partial {{theta }_{j}}}Jleft( {{theta }_{j}} right)=0 tag{1} ∂θj​∂​J(θj​)=0(1)

  1. 对于训练集的特征矩阵 X X X(已包含 x 0 = 1 x_0=1 x0​=1),标签向量 y y y,利用正规方程解出向量 θ = ( X T X ) − 1 X T y theta ={{left( {{X}^{T}}X right)}^{-1}}{{X}^{T}}y θ=(XTX)−1XTy,(具体的推导过程可以看下图)

2python实操
  1. 构建正规方程函数:
# 正规方程
def normalEqn(X, y):
    # 如果使用pinv则可以处理逆矩阵不存在的情况
    theta = np.linalg.inv(X.T@X)@X.T@y # X.T@X等价于X.T.dot(X)
    return theta
  1. 使用正规方程求解参数向量(这里使用的是第二篇文章的多特征数据集,为了与使用梯度下降的结果进行对比,还是进行了特征缩放):
# 多变量正规方程求解
raw_data = pd.read_csv('ex1data2.txt', names=['square', 'bedrooms', 'price'])
# 实际数据规范化结果
data = normalize_feature(raw_data)
X = get_X(data)

y = get_y(data)

final_theta2=normalEqn(X, y)
final_theta2
# 结果如下:

  • 从结果来看,还是有差距的
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号