上一篇我们知道了线性回归的理论知识,如果看懂了就有大干一场的冲动。于是上代码,这时,很多问题可能就浮出水面了。
Feature Scaling
多个特征变量的情况下,这些特征变量五花八门,数值上从几千到个位数,总觉得不靠谱。
这里,NG大神用等高图给我们分析了这种情况,特征变量的差距,只会增加我们的迭代次数,是的学习性能下降。等高图画出来,是个狭长的椭圆,要到圆心自然经历颇多,所以,通过对特征向量的优化,使得等高图变得更圆,迭代次数自然就更少,能够更快的到达圆心(最小成本)(收敛)。这类问题叫做Feature Scaling
这里提供了两种算法:(min-max)
第一种,把特征值控制在[-1,1]之间。
(x-mean(x))/(max(x)-min(x))
这里mean是平均值,max是最大值,min是最小值。对每一个特征值做这样的处理,得到的就是新的特征值,符合[-1,1]的要求。
第二种,把特征值控制在[-0.5,0.5]之间。(z-score)
x-mean(x)/std(x)
这里的std是标准方差,公式如下
N就是训练数量。μ是算数平均值
在我们使用特征向量时,可以统一先做Feature scaling
但是这里如果用了bias,偏置的话,是不需要对偏置做feature scaling的,因为偏置的特征向量是常数1,已经在我们的范围了。
这里NG给的例子,还是房价预测,我们的特征向量可能是房屋面积(50-200),也可能是房间数(1.5),所以这里可以使用feature scaling,如果特征值都很阶级,在同一个数量级,那么可以忽略。
第二个问题,则是 α
这个是我们用在梯度下降算法中,放在对参数求导前面的,我们叫学习率(Learning rate)
这个数值的大小,该取多少呢?
这里,NG通过分析迭代次数,和cost 函数的关系曲线,来分析。前提是确保算法实现无误。
理论上,只要α 足够小,我们的算法就可以正常工作。如果随着迭代次数上升,cost函数值增大,或者反复,那么就需要更小的 α 值。
α 过大为什么会是的梯度下降有问题呢? 可以理解为步子太大,越过了收敛,结果反复后,cost值越来越大。
还有一个问题,我们的cost 函数是不可能小到0的,因为实际情况和模型永远不可能完美拟合。为了确保达到我们的要求,那么当cost值的变化小于某个数值时,我们就可以认为,我们已经找到合适的模型参数。
这个值的选取,如下图NG说的,可以在10的负三次方内,就是0.001-0.009之间吧。其实这个参数如果太大,那么我们学的不是很完美,如果太小,那么可能学习时间又会太长。这就是需要衡量考虑率的问题。
实际运用中需要根据实际情况不断尝试。
正常的情况应该是图上这个。当然迭代次数有可能会是上千,或者上万。
你也许会觉得,这个线性回归很复杂,那么多东西需要考虑。
这里也有一种便捷的方法,不需要feature scaling,不需要学习率,直接计算,这就是
Normal Equation
实际上这就是用正规方程法求解θ参数
这种方法,不用学习率,也不用做feature scaling
θ = (X^TX)^(-1)X^Ty
这里T表示转置,-1表示逆。所以这里有个问题,求逆矩阵。并非所有矩阵都有逆矩阵。(奇异矩阵,非方阵)
如果用octave来计算,就可以忽略有无逆矩阵。
pinv(X'*X)*X'*y
既然有这样的方法,那么是否不需要用梯度递减了?
看Andrew NG 老师为我们总结的。
也就是说,主要看features的个数,如果在1000个以内,可以用Normal Equation。
相关推荐
线性回归是机器学习领域中最基础且重要的算法之一,它主要用来预测连续数值型的目标变量。在本实践项目中,我们将深入理解线性回归的概念、原理以及如何在实际问题中应用。 线性回归的核心思想是寻找一个最佳的直线...
总的来说,机器学习预测天气是一个综合了数据预处理、特征工程、模型选择和优化的过程。逻辑回归和线性回归作为基础模型,为天气预测提供了有效工具,但实际应用中往往需要结合多种技术,才能实现更准确的预测。在...
数据集包含了三个广告渠道(电视、广播、报纸)的投入量以及对应的收入值,这为学习和理解线性回归提供了很好的实例。 1. **线性回归模型**:线性回归假设因变量(在这里是收入)与一个或多个自变量(广告投入)...
总的来说,线性逻辑回归涉及了从数据建模、参数估计、模型优化等多个方面,是机器学习的基础,广泛应用于各种预测和分类任务中。在实际应用时,需要根据问题的特性和数据的分布特性来调整和选择合适的模型结构及参数...
线性回归是统计学和机器学习领域中最基础且重要的算法之一,它被广泛应用于预测分析和建模。在Python中,实现线性回归通常涉及到以下几个关键知识点: 1. **线性回归模型**:线性回归假设因变量和自变量之间存在...
线性回归是统计学和机器学习领域中一种基础且重要的算法,主要用于预测连续数值型的目标变量。在C++中实现线性回归可以帮助开发者更深入地理解算法原理,并将其应用于实际项目。本文将深入探讨线性回归(Linereg)...
线性回归是一种基础且广泛使用的预测模型,它假设目标变量与输入特征之间存在线性关系。在火力发电厂蒸汽量预测中,可能的输入变量包括煤炭消耗量、燃烧温度、压力等。线性回归通过拟合最佳直线来最小化预测值与真实...
线性回归是一种常见的机器学习算法,用于预测连续值的输出变量。它的目的是找到一个最佳的线性函数,使得预测值与实际值之间的差异最小。在这个例子中,我们使用PyTorch来实现一个简单的线性回归模型。 数据生成 ...
线性回归是一种基础而重要的统计学和机器学习方法,它被...总的来说,这个实验旨在帮助学习者从理论到实践全面理解线性回归,包括基本概念、数学原理、Python实现和优化算法,以提升其在数据分析和机器学习领域的技能。
在机器学习领域,单变量线性回归是一种基本的预测模型,它使用一条直线来描述一个变量如何依赖于另一个变量。本篇文档是根据吴恩达在机器学习课程中讲解的内容所作的笔记,涵盖了单变量线性回归的核心概念和算法流程...
标题中的“machine-learning-ex1 吴恩达机器学习网易云课堂-线性回归matlab程序”指的是一个关于吴恩达教授的机器学习课程中的第一课练习,该练习使用MATLAB编程语言来实现线性回归模型。这个课程是通过网易云课堂...
线性回归是机器学习中最基础且重要的算法之一,它在各种预测分析和建模场景中广泛应用。本课程“机器学习-线性回归-奔跑吧少年”旨在深入浅出地介绍线性回归的基本概念,以及如何利用Python编程语言进行实际操作。 ...
在斯坦福大学开设的机器...以上内容涵盖了线性回归和多项式回归的基本概念、模型构建、参数优化方法以及特征处理等方面的知识,这些都是机器学习领域的重要知识点,对于理解后续更高级的算法和模型具有重要的基础作用。
总之,这个资源对于学习线性回归的初学者来说是一份宝贵的资料,它将理论与实践相结合,有助于提升编程和数据分析技能。通过实践,你不仅可以掌握线性回归的基本概念,还能了解如何在实际问题中运用这些知识。
机器学习算法Python实现——线性回归,逻辑回归,BP神经网络 机器学习算法Python实现 一、线性回归 1、代价函数 2、梯度下降算法 3、均值归一化 4、最终运行结果 5、使用scikit-learn库中的线性模型实现 二、逻辑...
波士顿房价预测是数据科学领域的一个经典案例,常被用来教授和检验不同的机器学习算法,尤其是线性回归模型。在这个案例中,我们将深入探讨线性模型在处理实际问题时的应用。 线性模型的核心思想是通过构建一个线性...
线性回归是机器学习领域中最基础且重要的回归分析方法之一,它主要用于预测连续数值型的目标...所以,尽管作者建议自己动手敲一遍代码,但如果你遇到了困难,可以参考这个demo作为起点,逐步深入学习线性回归的精髓。
线性回归是机器学习中最基础且重要的算法之一,它在各种数据分析和预测任务中发挥着关键作用。本教程将深入探讨线性回归的原理、应用和实现,通过项目实战和源码解读帮助读者掌握这一核心技能。 首先,线性回归是一...
线性回归是一种基本的统计模型,用于预测一个连续变量(目标变量)基于一个或多个独立变量(特征)。在Theano中实现线性回归,我们需要定义模型的参数(如权重和偏置),构建损失函数(通常是均方误差),然后通过...