吴恩达机器学习笔记(四)

多变量线性回归

前面在上一篇笔记中,讨论了单变量/特征的回归模型,这一篇我们将重点将多变量(多维特征)线性回归问题

吴恩达机器学习笔记(二)_有主的程旭猫的博客-CSDN博客单变量线性回归以房屋交易问题为例:给定的数据集是这样的𝑚 代表训练集中实例的数量 𝑥 代表特征/输入变量 𝑦 代表目标变量/输出变量 (𝑥, 𝑦) 代表训练集中的实例 (𝑥(𝑖), 𝑦(𝑖)) 代表第𝑖 个观察实例 h代表学习算法的解决方案或者函数,也成为了称为假设(hypothesis)那么对于房屋的交易价格作为输出变量y,x代表输入变量h函数有一种可能表达式:ℎ𝜃(𝑥) = 𝜃_0 + 𝜃_1𝑥,因为输入变量x只有一个,我们称之为单变量线性回归问题。.https://blog.csdn.net/hanxing_ag/article/details/124691129?spm=1001.2014.3001.5501 在此之前我们已经讲过如下对应的变量对应的含义

𝑚 代表训练集中实例的数量
𝑥 代表特征/输入变量
𝑦 代表目标变量/输出变量
(𝑥, 𝑦) 代表训练集中的实例
(𝑥(𝑖), 𝑦(𝑖)) 代表第𝑖 个观察实例
h代表学习算法的解决方案或者函数,也称为假设(hypothesis)
在这里我们接着增加一些变量

n代表特征的数量,x_(i)代表第 𝑖 个训练实例,是特征矩阵中的第𝑖行,是一个向量vector)

就比如这里的x_(2).T=[1416,3,2,40]  (注意这里的向量一般是列向量,加上转置T就成了行向量)

但是在这个h_𝜃(x)函数里面有n+1个参数,n个变量,为了能够使我们的公式更加简化一些,我们引入X_0=1,这样公式就变为了

 这样,模型中的参数就是一个n+1维的向量,任何一个训练实例也都是n+1维的向量,特征矩阵X的维度是m*(n+1)。因此公式就可以利用线性代数的知识化简为

ℎ_𝜃(𝑥) = 𝜃.𝑇X(  .T表示矩阵的转置)

这样的表示不仅看起来直观简洁,在代码实现里面也可以利用python提前下载好的包来实现,便于数据集的导入与使用。

多变量梯度下降

多变量线性回归与单变量线性回归是极其类似的,在多变量线性回归中,同样也有代价函数,只不过代价函数的参数不再是两个变量𝜃_0和𝜃_1,而是一个n+1维的向量𝜃。

代价函数同样是所有建模误差的平方和:

 其中:ℎ_𝜃(𝑥) = 𝜃_𝑇𝑋 = 𝜃_0*1+ 𝜃_1*𝑥_1+……+𝜃_n*x_n

上图即为我们的批量梯度下降算法,目的和我们的单变量线性回归问题一样,要找出使代价函数最小的𝜃的(n+1)维向量

图中的公式也不难理解,m为样本数,因为是批量梯度下降,所以要取全部样本对其进行偏差值求和,其实这一块就是对我们的代价函数进行求导,只乘X_r (i)的原因是求偏导的知识,所以还是得学好数学叭

和我们的单变量一样,还是随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,不断循环,直至收敛

def computerCost(X,y,theta):
    inner=np.power(((X*theta.T)-y),2)
#X为m*(n+1)维的矩阵,theta为1*(n+1)维的矩阵,或者说是(n+1)维的行向量,所以要进行转置
#np.power是numpy包里面自带的一个函数,将(X*theta.T)-y)的每一行平方
    return np.sum(inner)/(2*len(X))
#np.sum()函数是将inner矩阵的每一行进行相加,
#/len(X)是除以样本数,/2是后面求偏导可以消掉有一定的帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值