机器学习的典型过程
输入训练数据,利用特定的机器学习方法建立估计函数。得到函数后向这一模型输入测试数据, 函数有能力对没有见过的数据进行正确估计,这就是机器学习的过程。
线性回归的基本概念
• 线性回归是机器学习中最简单也是最重要的模型之一,其模型建立同样遵循上图流程:获取数据、数据预处理、训练模型、应用模型。
• 回归模型可以理解为:存在一个点集,用一条曲线去拟合它分布的过程。如果拟合曲线是一条 直线,则称为线性回归。如果是一条二次曲线,则被称为二次回归。线性回归是回归模型中最 简单的一种。
• 线性回归中的几个重要概念
– 假设函数
– 损失函数
– 优化算法
• 假设函数
– 假设函数是指,用数学的方法描述自变量和因变量之间的关系,它们之间可以是一个线性函数或非线性函数。
• 损失函数
– 损失函数是指,用数学的方法衡量假设函数预测结果与真实值之间的误差。这个差距越小预测越准确,而算法的任 务就是使这个差距越来越小。
– 损失函数的选择需要具体问题具体分析,在不同问题场景下采用不同的函数。通常情况下,会将损失函数定义为平方损失函数(Quadratic Loss Function)。
• 优化算法
– 优化算法决定了一个模型的精度和运算速度,本次线性回归实例中使用了梯度下降法进行优化。
• 梯度下降 – 假设损失函数为
它可以理解为变量 ω和 b的函数。算法的最终目标是找到损失函数的最小值。而这个 寻找过程就是不断地微调变量ω和b的值,一步一步地试出这个最小值。而试的方法就是沿着梯度方向逐步移动。
– 应用梯度下降算法,首先需要初始化参数ω和b。一般情况下,深度学习模型中的和应该初始化为一个很小的数,逼近0但是非0。因为是凸函数,所以无论初始化在曲面上的哪一点,最终都会收敛到同一点或者相近的点。
– 一旦初始化好ω和b之后,就可以开始迭代过程了。所谓的迭代过程就是从初始点沿着曲面朝着下降最快的方向一步 一步地移动。经过多次迭代,最终收敛到全局最优解或者接近全局最优解。
数据处理
• 用线性回归模型预测目标的第一步是进行数据处理,例如本次数据集使用了某地区的房价分布, 为了简化模型,数据只有两维,分别是房屋面积与房屋价格。
• 可以首先输出数据的前五行看一下,探究房屋的面积与房价之间大概存在着一种什么关系?
• 接下来就是要对数据进行归一化。一般而言,如果样本有多个属性,那么各维属性的取值范围差异会很大,这就要用 到一个常见的操作-归一化(normalization)了。归一化的目标是把各位属性的取值范围放缩到差不多的区间,例如 [-0.5, 0.5]。这里我们使用一种很常见的操作方法:减掉均值,然后除以原取值范围。
• 虽然本次房价预测模型中,输入属性只有房屋面积,不存在取值范围差异问题,但由于归一化的各种优点,我们仍选择对其进行归一化操作。
• 归一化的原因:
• 过大或过小的数值范围会导致计算时的浮点上溢或下溢。
• 不同的数值范围会导致不同属性对模型的重要性不同(至少在训练 的初始阶段如此),而这个隐含的假设常常是不合理的。这会对优化的过程造成困难,使训练时间大大加长。
• 很多的机器学习技巧/模型(例如L1,L2正则项,向量空间模型Vector Space Model)
• 都基于这样的假设:所有的属性取值都差不多是以0为均值且取值范围相近的。
• 数据集的分割 – 将原始数据处理为可用数据后,为了评估模型的好坏,我们将数据分成两份:训练集和测试集。
– 训练集数据用于调整模型的参数,即进行模型的训练,模型在这份数据集上的误差被称为训练误差;
– 测试集数据被用来测试,模型在这份数据集上的误差被称为测试误差。
• 分割数据的比例要考虑到两个因素:
– 更多的训练数据会降低参数估计的方差,从而得到更可信的模型;
– 而更多的测试数据会降低测试误差的方差,从而得到更可信的测试误差。
– 我们这个例子中设置的分割比例为8:2。
模型概览
• 处理好数据后,就可以开始为模型设计假设函数和损失函数了。之前已经为大家介绍了假设函数、损失函数和优化算法的基本概念。下面将在房价预测的例子中进一步学习设置的规则
• 假设函数 – 在房价数据集中,和房屋相关的值共有2个,第一个用来描述房屋面积,即模型中的 X;最后一个值为我们要预测 的该类房屋价格的中位数,即模型中的Y 。因此,我们的模型的假设函数为:
• 损失函数 – 建立模型后,我们需要给模型一个优化目标,使得学到的参数能够让预测值 Y 尽可能地接近真实值Y。 对于线性回归模型来讲,最常见的损失函数就是均方误差。
• 模型训练定义好模型结构之后,我们要通过以下几个步骤进行模型训练:
–初始化参数,其中包括权重a和偏置b,对其进行初始化(如0均值,1方差)。
–从当前值开始计算模型输出值和损失函数。
–利用梯度下降的方法处理损失函数,在寻找损失函数极小值的过程中依次更新模型中的参数。
–重复2~3步骤,直至网络训练误差达到规定的程度或训练轮次达到设定值。
效果展示
下面的散点图展示了使用模型对部分房屋价格进行的预测。 其中,每个点的横坐标表示同一类房屋真实价格的中位数, 纵坐标表示线性回归模型根据特征预测的结果,当二者值完全相等的时候就会落在直线上。所以模型预测得越准确,则点离直线越近。
可以看出预测结果还是比较不错的,散点基本落在了直线周围。