《Hands-On Machine Learning》学习笔记-2.2 对问题进行宏观的分析

端到端机器学习项目

对问题进行宏观的分析

欢迎来到机器学习房地产公司。你的第一个任务是基于加州人口普查的数据建立一个加州房价的模型。这些数据内容包含有加州每个街区的人口、收入中位数、房价中位数等等。要求你的模型能够学习这些数据并在给定其他数据内容的情况下,预测任何一个街区的房价中位数。

限定问题的边界

第一个要提出的问题就是这件事的最终目标是什么,显然单纯构建一个模型并不是最终的目标,公司准备如何使用模型,如何从中受益?这个问题很重要因为这决定了你将问题限定在什么样的范围内,选择什么样的算法,使用什么样的性能指标去评价模型以及将要花多少时间精力去调整模型。

老板回答你说该模型的输出将和其他参数一起作为另一个机器学习系统的输入,这个下游的机器学习系统将决定是否值得投资某个区域。
《Hands-On Machine Learning》学习笔记-2.2 对问题进行宏观的分析_第1张图片

图2-2 房地产投资的机器学习流水线

一系列数据处理组件被称为数据流水线。在机器学习系统中,流水线非常普遍。流水线中的各个部分通常异步工作,每个部分都是自洽的,各个部分之间的接口就是数据集。这使得整个系统很容易掌握,各个团队能够专注于自己的部分。

接下来要问的问题就是针对需要我们解决的问题,当前正在使用的解决方案是怎样的(如果有的话)?这通常能够给你一些参考以及如何解决问题的见解。

获取了这些信息之后,你就要开始设计你的系统了。首先需要对问题进行限定:是有监督的还是无监督的,或者强化学习?是分类问题还是回归问题或者其他类型?是需要批量学习还是在线学习?

显然,该问题是个典型的有监督学习,因为每个样本都带了预期输出,即房价中位数。而且这是个典型的回归问题,因为要做的就是预测值,而且还是个多元回归(作为输入的参数有多个,如街区的人口数,收入的中位数等等)。最后,由于没有持续的数据输入到系统中,因此没有适应变化数据的需求,而且数据量不大,可以一次性加载,所以使用批量学习即可。

如果数据量巨大,无法一次加载,那么可以将批量学习系统分解到多个服务器上(MapReduce技术),或者使用在线学习。

选择一个性能指标

下一步就是要为模型选择一个性能指标。回归问题常用的指标是均方根误差(Root Mean Square Error ,RMSE)。它指的是系统预测误差的标准差,例如均方根误差为50000意味着68%的预测值落在与真实值误差50000的范围内,95%的预测值落在与真实值相差100000的范围内。RMSE的公式如公式2-1所示。

式2-1 RMSE

RMSE ⁡ ( X , h ) = 1 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 \operatorname{RMSE}(\mathbf{X},h) = \sqrt{\frac1m\sum_{i=1}^{m}{(h(x^{(i)})-y^{(i)})^2}} RMSE(X,h)=m1i=1m(h(x(i))y(i))2

式中用到了几种机器学习里的常见表示方法:

  • m m m代表使用RMSE进行度量的数据集中实例的个数

  • x ( i ) \mathbf{x}^{(i)} x(i)是数据集中第 i i i个实例的所有特征(不包括标签)组成的向量, y ( i ) y^{(i)} y(i)是其标签(即实际值)

    • 例如,如果第一个街区位于经度-118.29°,维度33.91°,有1416位居民,收入中位数为38372,房价中位数为156400,那么

      x ( 1 ) = ( − 118.29 33.91 1 , 416 38 , 372 ) \mathbf{x}^{(1)}=\left(\begin{array}{c}{-118.29} \\ {33.91} \\ {1,416} \\ {38,372}\end{array}\right) x(1)=118.2933.911,41638,372

      y ( 1 ) = 156400 y^{(1)}=156400 y(1)=156400

  • X \mathbf{X} X是包含所有实例的特征值的矩阵,包括标签,其中的每一行代表一个实例,第 i t h i^{th} ith行等于 x ( i ) x^{(i)} x(i)的转置,即为 ( x ( i ) ) T (x^{(i)})^T (x(i))T。如下所示:

    X = ( ( x ( 1 ) ) T ( x ( 2 ) ) T ⋮ ( x ( 1999 ) ) T ( x ( 2000 ) ) T ) = ( − 118.29 33.91 1 , 416 38 , 372 ⋮ ⋮ ⋮ ⋮ ) \mathbf{X}=\left(\begin{array}{c}{\left(\mathbf{x}^{(1)}\right)^{T}} \\ {\left(\mathbf{x}^{(2)}\right)^{T}} \\ {\vdots} \\ {\left(\mathbf{x}^{(1999)}\right)^{T}} \\ {\left(\mathbf{x}^{(2000)}\right)^{T}}\end{array}\right)={\left(\begin{array}{cccc}{-118.29} & {33.91} & {1,416} & {38,372} \\ {\vdots} & {\vdots} & {\vdots} & {\vdots}\end{array}\right)} X=(x(1))T(x(2))T(x(1999))T(x(2000))T=(118.2933.911,41638,372)

  • h h h代表系统的预测函数,也叫着假设函数。输入一个实例的特征向量 x ( i ) \mathbf{x}^{(i)} x(i),它输出一个预测值 y ^ ( i ) = h ( x ( i ) ) \hat{y}^{(i)}=h\left(\mathbf{x}^{(i)}\right) y^(i)=h(x(i))

    • 例如,如果系统预测第一个街区的房价中位数为158400,那么 y ^ ( i ) = h ( x ( i ) ) = 158400 \hat{y}^{(i)}=h\left(\mathbf{x}^{(i)}\right)=158400 y^(i)=h(x(i))=158400,预测误差为 y ^ ( i ) − y ( i ) = 2000 \hat{y}^{(i)}-y^{(i)}=2000 y^(i)y(i)=2000
  • R M S E ( X , h ) RMSE(\mathbf{X},h) RMSE(X,h)是预测函数 h h h在整个样例集上的损失函数

用小写斜体的英文字母代表变量和函数,例如 m m m y ( i ) y^{(i)} y(i)以及 h h h,小写加粗的英文字母代表向量,例如 x \mathbf{x} x,用大写加粗的字母代表矩阵,如 X \mathbf{X} X

回归问题通常选用RMSE作为性能指标,但有些时候也会选择其他的函数。例如,假设有许多街区的数据是异常的,这种情况下,你可能要考虑使用平均绝对误差(Mean Absolute Error,即MAE )。

式2-2 Mean Absolute Error

MAE ⁡ ( X , h ) = 1 m ∑ i = 1 m ∣ h ( x ( i ) ) − y ( i ) ∣ \operatorname{MAE}(\mathbf{X}, h)=\frac{1}{m} \sum_{i=1}^{m}\left|h\left(\mathbf{x}^{(i)}\right)-y^{(i)}\right| MAE(X,h)=m1i=1mh(x(i))y(i)

RMSE ⁡ \operatorname{RMSE} RMSE MAE ⁡ \operatorname{MAE} MAE都是度量两个向量间距离的方法,即预测值的向量与真实值的向量。有不同的计算距离的方式,例如:

  • 平方和求根(RMSE),即欧式距离。通常被称为 ℓ 2 \ell_{2} 2范数,记为 ∥ ⋅ ∥ 2 \|\cdot\|_{2} 2,或 ∥ ⋅ ∥ \|\cdot\|
  • 绝对值求和(MAE),即曼哈顿距离(坐标差的绝对值求和)。记为 ∥ ⋅ ∥ 1 \|\cdot\|_1 1
  • 更普遍的,包含有 n n n个元素的向量 v \mathbf{v} v ℓ k \ell_k k范式表示为 ∥ v ∥ k = ( ∣ v 0 ∣ k + ∣ v 1 ∣ k + ⋯ + ∣ v n ∣ k ) 1 k \|\mathbf{v}\|_k=(\left|v_0\right|^k+\left|v_1\right|^k+\dots+\left|v_n\right|^k)^{\frac1k} vk=(v0k+v1k++vnk)k1
  • 范式越高,对大值越敏感,而忽略小值。这就是为什么RMSE比MAE对异常更敏感。但是当数据中的异常值很少的时候,RMSE的表现就很好,一般选择使用它作为损失函数。

再次确认任务

在动手之前,要对任务进行再次的确认。比如我们已经知道本系统所预测的价格将会给下游的机器学习系统使用,那么下游的系统是直接使用我们输出的值还是将其分类(如便宜,中等,昂贵)然后使用分类标签呢?如果使用分类标签的话,那么这个问题就不是回归问题,而是分类问题了。总之磨刀不误砍柴工,动手之前还是要把问题确认清楚。

你可能感兴趣的:(Hands-On,Machine,Learning学习笔记)