线性回归
本章介绍一般的线性回归和机器学习的基本原理。
TensorFlow提供了完全控制计算的工具。 这是通过低级API完成的。 另外TensorFlow配备了高级API来执行许多机器学习算法。 这是高级API。 TensorFlow称它们为estimator(估算器)。
- 低级API:从头开始构建体系结构,优化模型。 这对初学者来说很复杂。
- 高级API:定义算法。 它更友好。 TensorFlow提供工具箱调用estimator来构建,训练,评估和进行预测。
本章仅使用estimator。第一部分介绍了如何使用梯度下降优化器来训练线性回归。 在第二部分中,您将使用Boston数据集使用TensorFlow估算器预测房屋的价格。
如何训练线性回归模型
在我们开始训练模型之前,让我们看看什么是线性回归。
自变量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该算法将找到权重的最佳解决方案; 这意味着它会尽量降低成本(拟合线和数据点之间的差异)。
参考资料
- 讨论qq群630011153 144081101
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- 2018最佳人工智能机器学习工具书及下载(持续更新)
算法如何工作
image算法将为每个变量选择随机数。
我们可以计算出误差ε,即模型的预测值和实际值之间的差异。 正误差意味着模型低估了y的预测,负误差意味着模型高估了y的预测。
image您的目标是最小化错误的平方。 该算法计算平方误差的平均值。 此步骤称为最小化错误。 对于线性回归,标准差也称为MSE。 数学上,它是:
image- θ加T是权重,θ_T-x_i是指预测值
- y_i是真实值
- m是观察数
注意θ加T使用矩阵的转置。 ∑及前面内容是平均数的数学符号。
目标是找到最好的 θ以最小化MSE
如果标准差很大,则意味着模型表现不佳并且未正确选择权重。 要更正权重,您需要使用优化程序。 传统的优化器称为梯度下降(Gradient Descent)。
梯度下降取得导数并减小或增加重量。 如果导数是正的,则重量减少。 如果导数为负,则重量增加。 模型将更新权重并重新计算错误。 重复此过程,直到错误不再发生变化。 每个过程称为迭代 。 此外,梯度乘以学习率。 它表明了学习的速度。
如果学习速率太小,则算法收敛将需要很长时间(即需要大量迭代)。 如果学习率太高,算法可能永远不会收敛。
image您可以从上图中看到,模型重复该过程大约20次,以找到权重的稳定值,从而达到最低误差。
请注意 ,错误不等于零,但稳定在5左右。这意味着,模型的典型误差为5.如果要减少错误,则需要向模型添加更多信息,例如更多变量或使用不同的估算。
梯度下降的过程
giphy.gif
网友评论