TensorFlow工具快速入门教程8线性回归简介

作者: python测试开发 | 来源:发表于2019-01-02 11:13 被阅读32次

线性回归

本章介绍一般的线性回归和机器学习的基本原理。

TensorFlow提供了完全控制计算的工具。 这是通过低级API完成的。 另外TensorFlow配备了高级API来执行许多机器学习算法。 这是高级API。 TensorFlow称它们为estimator(估算器)。

  • 低级API:从头开始构建体系结构,优化模型。 这对初学者来说很复杂。
  • 高级API:定义算法。 它更友好。 TensorFlow提供工具箱调用estimator来构建,训练,评估和进行预测。

本章仅使用estimator。第一部分介绍了如何使用梯度下降优化器来训练线性回归。 在第二部分中,您将使用Boston数据集使用TensorFlow估算器预测房屋的价格。

下载Boston DataSet

如何训练线性回归模型

在我们开始训练模型之前,让我们看看什么是线性回归。

自变量x与因变量y之间存在正相关关系。

image

如果x = 1,y将大致等于6,如果x = 2,y将约为8.5。

这不是非常准确的方法,尤其是对于大数据集。

用等式评估线性回归。 变量y由变量解释。 上例如下:

image

附:

β是偏移。 即如果x = 0,则y = β;

α是与x相关的权重;

ε是模型的误差。 它包含模型无法从数据中学习的内容

设置α为2.78, β为3.8。y = 3.8 + 2.78x

image

可以向模型添加更多变量。 传统分析和线性回归之间的区别在于线性回归分析了y对每个变量x的独立反应。

预测一家冰淇淋店的销售情况。 数据集包含不同的信息,例如天气(即下雨,晴天,阴天),客户信息(即工资,性别,婚姻状况等)。

基于线性回归的等式:

image

该算法将找到权重的最佳解决方案; 这意味着它会尽量降低成本(拟合线和数据点之间的差异)。

参考资料

算法如何工作

image

算法将为每个变量选择随机数。

我们可以计算出误差ε,即模型的预测值和实际值之间的差异。 正误差意味着模型低估了y的预测,负误差意味着模型高估了y的预测。

image

您的目标是最小化错误的平方。 该算法计算平方误差的平均值。 此步骤称为最小化错误。 对于线性回归,标准差也称为MSE。 数学上,它是:

image
  • θ加T是权重,θ_T-x_i是指预测值
  • y_i是真实值
  • m是观察数

注意θ加T使用矩阵的转置。 ∑及前面内容是平均数的数学符号。

目标是找到最好的 θ以最小化MSE

如果标准差很大,则意味着模型表现不佳并且未正确选择权重。 要更正权重,您需要使用优化程序。 传统的优化器称为梯度下降(Gradient Descent)。

梯度下降取得导数并减小或增加重量。 如果导数是正的,则重量减少。 如果导数为负,则重量增加。 模型将更新权重并重新计算错误。 重复此过程,直到错误不再发生变化。 每个过程称为迭代 。 此外,梯度乘以学习率。 它表明了学习的速度。

如果学习速率太小,则算法收敛将需要很长时间(即需要大量迭代)。 如果学习率太高,算法可能永远不会收敛。

image

您可以从上图中看到,模型重复该过程大约20次,以找到权重的稳定值,从而达到最低误差。

请注意 ,错误不等于零,但稳定在5左右。这意味着,模型的典型误差为5.如果要减少错误,则需要向模型添加更多信息,例如更多变量或使用不同的估算。

梯度下降的过程

giphy.gif

相关文章

网友评论

    本文标题:TensorFlow工具快速入门教程8线性回归简介

    本文链接:https://www.haomeiwen.com/subject/nfbalqtx.html