第二篇:2.1 回归问题算法
初读:2020年11月20日-2020年11月25日
啃书进度会在目录中标出来。本次目标是完成第二章2.1节回归问题算法(P14-P16)。
这一节讲了三个问题:
-
只有一个特征值的线性回归问题
-
简单介绍交叉熵
-
多个属性的线性回归问题
关于线性回归的作用,P14有这样一句话很提神:线性回归是一个很简单的算法,使用它可以快速地了解很多关于深度学习的基础知识。既然线性回归与很多基础知识有关,我决定给予充分重视,一定要把这部分啃透。可是这一节只有短短三页的空间,每个问题都没有充分展开,所以把这一部分的内容顺下来还要依靠一些外部资料。闲话到此,以下干货。
书中对回归问题算法的定义:通常是利用一系列属性来预测一个值,且预测的值是连续的。例如:
-
根据一套房子的特征数据,如面积、卧室数等来预测房价
-
利用一周的气温变化和卫星云图来预测未来的气温情况
-
灌溉渠道水的流速Y与水深x之间的关系(高中数学选修1-2)
-
市场趋势预测、产品质量管理、客户满意度调查、投资风险分析(李航:统计学习方法)
机器学习中常用的回归分析:
-
线性回归(Linear Regression)
-
多项式回归(Polynomial Regression)
-
逻辑回归(Logistic Regression)
本节重点介绍线性回归。
01
只有一个特征值的线性回归问题
表2.1 给定数据
02
交叉熵误差(Cross Entropy Loss)
交叉熵误差用于评估分类模型的表现。书中给出的是二分类问题的交叉熵误差的公式:
03
多个属性的线性回归问题
当输入变量从一个属性扩展到多个属性,问题就变复杂了。我试了用配方法推导两个属性的回归问题,只能恨脑袋窍开得太少。当输入属性增加以后,需要用到更高级的数学方法。
(1)数据集:设数据集内有m组数据,表示为
一步得出结果,而且与使用配方法求得到的系数是一样的。再画一下图象:
跟前面绘制的回归直线一样。再试试当输入变量有多个属性的情况。为了可视化方便,中尝试两个属性的回归问题。先把给定数据集简单改造一下。数据怎么改都行,只要属性之间线性无关即可,否则奇异矩阵会导致不满秩的问题,回归计算会出错。我直接把输入变量顺序倒过来作为第二个属性的特征值:
再看看回归的效果,看一下在三维坐标系中能不能绘出一个平面
眼见为实,我们的确得到了一个回归平面。建议使用%matpotlib魔术命令,这样就会打开独立的绘图窗口,好处是可以用鼠标拖动翻转图象,方便从各个方面观察图形。
今天先到这。感觉机器学习里数学很重要,也很高深,即使是这样一点点入门的线性回归知识花费了我我整整啃了一个星期的时间。路漫漫其修远兮,不能心急。
04
写在最后
这真是一本真正实战的书,第一章谈风清云淡,第二章开始惊涛骇浪。实战书不给公式推导过程是可以接受的,不过啃起来实在是吃力。好在有周边的学习资源辅助,缺失的拼板可以找到。
另外一个比较头大的问题是数学符号。比如数据集元素的上下标,这本书与跟统计学习方法是相反的。我估计每本书的作者都用有点自己的脾气。所以我们看不同的书相互参照的时候,最好先看清楚符号定义。
最后,啃书吃力,码字不易,觉得有用请友情留个喜欢以资鼓励。有表述不正确的地方,请大神们不吝指正。