首页 > 编程 > Python > 正文

运用TensorFlow进行简单实现线性回归、梯度下降示例

2020-02-22 23:21:19
字体:
来源:转载
供稿:网友

线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可。

单变量线性回归:

a) 因为是线性回归,所以学习到的函数为线性函数,即直线函数;

b) 因为是单变量,因此只有一个x。

我们能够给出单变量线性回归的模型:

单变量线性回归的模型

我们常称x为feature,h(x)为hypothesis。

上面介绍的方法中,我们肯定有一个疑问,怎样能够看出线性函数拟合的好不好呢?

所以此处,我们需要使用到Cost Function(代价函数),代价函数越小,说明线性回归也越好(和训练集合拟合的越好),当然最小就是0,即完全拟合。

举个实际的例子:

我们想要根据房子的大小,预测房子的价格,给定如下数据集:

例图

根据上面的数据集,画出如下所示的图:

房价点图

我们需要根据这些点拟合出一条直线,使得Cost Function最小。虽然现在我们还不知道Cost Function内部到底是什么样的,但是我们的目标是:给定输入向量x,输出向量y,theta向量,输出Cost值。

Cost Function:

Cost Function的用途:对假设的函数进行评价,Cost Function越小的函数,说明对训练数据拟合的越好。

下图详细说明了当Cost Function为黑盒的时候,Cost Function的作用:

Cost Function

但是我们肯定想知道Cost Function的内部结构是什么?因此我们给出下面的公式:

cost function

其中:

表示向量x中的第i个元素;

表示向量y中的第i个元素;

表示已知的假设函数;m表示训练集的数量。

如果theta0一直为0,则theta1与J的函数为:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表