大家好！这是第4.2节，我们学习线形回归。
在第1.3节，我们提到过分类问题和
回归问题的差别。
分类问题是你想预测一个名词值，
而回归问题是你想预测一个数字值。
我们已经见过名词和数字属性的数据集，但还
没有涉及到回归问题，它是用于预测数字值的
机器学习方法。
这就是我们将在这节课要学的，线形回归。
至今，我们所看到的都是名词分类，现在来学习数字分类。
这是个经典的统计方法，可追述到2个世纪前。
这就是你通常会看到的图。
你有一组二维数据，我们想在这些数据点上画一条直线
找一条最接近的直线。
对我们而言，可能要处理的数据多于二维，可能是多维的。
但这仍然是个标准的问题。
我们先来看下二维的例子。
你可以写一个这种形式的加权直线公式，w0 加 w1a1 加
w2a2，等等。
如果是一维的话，只有一个a
不用关心后面的这些，只注意w0 加w1a1。
这是这条线的等式（这是一条直线的等式），这里w0
和w1是由数据中得出的两个常量。
这当然只适合于数字属性，因为我们用常量
乘以这些属性值。
我们随后再看名词属性。
我们将用训练数据来计算这些加权值w0，w1，和w2。
那些是我们将用训练数据来计算的。
一旦得到加权值，我们便可预测第一个
训练实例的值a1。
这里，等式变得很可怕。
我知道它看起来很吓人，但很简单。
我们用这些已计算好的加权值的线形总和，用第一个实例
的属性值来得出这个实例的预测值。
我们将用这个很可怕的公式为训练实例计算
预测值。
我知道它看起来很吓人，但它实际上不是那么可怕。
这些是我们由训练数据得到的数字，这里的这些是
第一个实例a1的属性值
（上面的1指的是第一个实例）。
这些1，2，3指的是第一，二，三个属性。
我们可以把这个写到这个短小的加法公式中，这看起来好一些。
顺便注意下，我们定义a0（第零个属性的值）为1。
这公式便可用了。
来看第一个实例，我们有这个数x，第一个实例的预测值
和a1的值。
然后我们选能在训练数据上得到最小的平方误差的加权值
这是第i个实例的实际的x值。
这是第i个实例的预测值。
我们求实际值和预测值得差，求平方，
将它们相加。
这就是我们想最小化的。
我们通过最小化这个平方误差的和来得到加权值。
这是数学的工作。我们不用关心它的原理。
这是个标准的矩阵问题。
如果实例的数量多于属性的数量它效果会很好。
它不适用的情况是你有很多的属性却没有太多的实例。
如果实例的数量比属性的多（通常都是这样）
就没问题。
如果我们有名词属性，而它们只有两个值/二元值，
可以将它们转变为0和1，然后用这些数字。
如果我们的名词属性值是多元的，你会在
课后的练习中学到怎样做。
我们将打开一个回归的数据集，来看看cpu.aff 。
这是个很普通的数据集。
它含有数字属性，最重要的是它的分类是数字的。
我们将预测一个数字的值。
我们来运行LinearRegression； 它在函数的（functions）类别里
运行一下，这是输出。
这是模型。
这个类的预测值是一个线性的总和。
这些是我提到过的加权值。
它等于这个加权值乘以这个属性值加上这个加权值乘以这个属性值
等等。
减去w0，它是个常量的加权值，不用乘以属性值。
这是分类值的计算公式。
在使用这个公式时，你可以看下它对于训练数据的成功率。
它的相关系数是0.9，一个标准的统计测量方法。
看来还不错。
这里是其它的误差数据。
在幻灯片上有关于这些误差的解释。
很难知道该使用哪一个。
它们的结果都近似，我想你应该根据
具体的情况来选择。
这是绝对平均误差和均方根误差，它们都是
标准的测量法。
这就是线性回归。
来看一下非线性回归。
模型树就是它的每一个叶节点都含有一个线性回归模型。
我们建一个这样的树，每个叶节点含有一个线性模型。
它包含了这些相关系数。
它就像是个线性模型的补丁，这6个补丁组成了
一个连续的函数。
在树分类器的类别下，有一个神秘的叫M5P的名字。
如果运行一下，它会创建一个模型树。
我们来可视化一下这个树。
现在我可看下模型树，它和幻灯片上的很相似。
你可以看到每一个叶节点上（这里有5个）都有一个线性模型
LM1，LM2，LM3... 我们看回这里，这些线性模型是这样定义的：
LM1是这个线性方程，这个线性方程是LM2的，等等。
我们选trees 然后 M5P， 运行。来看下结果。
我们可以将这些结果（92-93%的相关值，30的绝对平均误差
等等），和正常的线性回归结果比较一下，
它的相关值低一些，绝对误差高一些。（事实上，我觉得
这些误差数据都要高一些。）
这是我们在课后练习中让你做的。
线形回归是一门有充分根据的，可信赖的数学技术。
实际的问题通常需要非线性的解决方法
M5P算法用回归模型建树，树的每个叶结点存有回归模型。
存有回归模型。
你能在课本的第4.6节读到相关内容。
好了，去完成课后练习。
很快回来。
再见！