当前位置: 代码迷 >> 综合 >> Machine Learing(二)
  详细解决方案

Machine Learing(二)

热度:72   发布时间:2023-11-01 21:36:15.0

一、线性回归

 还是房价的例子。

训练样本数据集
训练样本数据集 (m个样本)

 

回归就是我们预测一个具体的数值输出,也就是价格。

线性回归就是找一个一次函数来拟合训练数据集,如图。

这里预测y是关于x的线性函数:

hypothesis: h(x)=\theta _{0}+\theta _{1}x

我们可以看到这里有我们的训练集(Training Set),我们把它提供我们的学习算法(Learning Algorithm)进行训练,然后算法通过训练输出一个函数h,即hypothesis(假设)。这里 h表示一个函数,例如输入x是房屋尺寸大小,h 根据输入的 x 值来得出y值,y值就是预测的对应房子价格。因此 h是一个从x到y的函数映射。

二、代价函数

代价函数就是用于找到最优解的目的函数,这也是代价函数的作用。

既然是找出一条直线h(x)=\theta _{0}+\theta _{1}x 来拟合训练数据,那么我们如何得出\theta _{0}\theta _{1}的值,来使它很好地拟合数据呢?有一个想法是我们要选择一个h(x),能使输入x时,我们预测的值最接近该样本对应的y值,此时的\theta _{0}\theta _{1}就是我们要找的。所以我们需要一定数量的训练样本,来计算出\theta _{0}\theta _{1}的值。所以我们要尽量选择合适的参数值,使得给出训练集中的x值,我们能合理准确地预测y的值。

对于回归问题,我们需要求出代价函数来求解最优解,常用的是平方误差代价函数

  比如,对于下面的假设函数:

  里面有 \theta _{0}\theta _{1}两个参数,参数的改变将会导致假设函数的变化,比如:

 给出标准的定义:在线性回归中,我们要解决的是一个最小化问题,所以要写出关于\theta _{0}\theta _{1}的最小化,而且希望这个式子极其小,即h(x)和y之间的差异要小。这里要做的事情就是尽量减少假设的输出房子真实价格之间的差的平方。

即:(h_{\theta }(x)-y)^{2}

平方误差代价函数的主要思想:将实际数据给出的值与我们拟合出的线的对应值做差的平方,求出我们拟合出的直线与实际的差距。

由于有m个样本,所以需要对所有的训练样本进行一个求和:J(\theta_{0},\theta _{1} )=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})^{2}

ps:上标 i 表示第 i 个训练样本。用第 i 个训练样本的特征值来预测的标签h减去 第 i 个训练样本给定的准确结果。

除以2 是因为求导方便。

J(\theta_{0},\theta _{1} )就是我们要的代价函数。也是我们要优化的目标函数。 

  相关解决方案