首先将01中的五道题进行自测
预测天气即为学习任务T,T的表现P也即预测天气的表现,故而选C(正确预测的概率)
第二题气温为连续值,故回归,第三题同理,是否破产为二分类
B、C、D即为only input x,而A为回归问题
B
线性回归模型![](https://i-blog.csdnimg.cn/blog_migrate/773deaa745bdc0c62f834ec1ae6445a7.png)
首先我们在进行学习算法的构建中需要一个训练集training set,也即此处的房子size和price分别称之为特征features和目标targets
在此之后将特征feature输入给模型function从而得到一个对于目标的预测值(y-hat)
我们称有一个变量(仅有一个特征x)的回归为线性回归,也较univariate(单变量)线性回归
训练集、验证集和测试集的比例分割:
在previous era即数据量比较小的时期,100条、1000条甚至10000条数据时,可以采用70%/30%比例分割data,或者60/20/20,这样的效率经过验证是较高的。但在现在的大数据时期,通常为98/1/1或者99.5/0.25/0.25或者99.5/0.4/0.1
就算没有测试集也不要紧might be okay,测试集的目的是对最终所选定的神经网络系统做出无偏估计,如果不需要无偏估计,也可以不设置测试集。所以如果只有验证集,没有测试集,我们要做的就是,在训练集上训练,尝试不同的模型框架,在验证集上评估这些模型,然后迭代并选出适用的模型。因为验证集中已经涵盖测试集数据,其不再提供无偏性能评估。当然,如果你不需要无偏估计,那就再好不过了。一般对于只有训练集和验证集,没有测试集时,通常把验证集叫做测试集
建议大家要确保验证集和测试集的数据来自同一分布,因为要用验证集来评估不同的模型,尽可能地优化性能。如果验证集和测试集来自同一个分布就会很好。
成本函数cost function
构造一个成本函数,这是完成线性回归模型工作的重要步骤
有时候w和b也会被称之为系数coefficients或权重weights,像之前所学习和了解到的一样w为斜率,b为截距从而表示直线的形状和位置,在f(x)的函数图像中会有x(i)代入f中得出的y-hat(i)此处的粉色dot,此外在我们的训练集数据中的(xi,yi)此处的红cross
我们要找到合适的w和b,对于尽可能多的样本,使得y和y-hat之间的距离尽可能的相近也即使得cost function J尽可能小。对于很多问题而言,成本函数(代价函数)可能很多,其中平方误差这个函数对于线性回归问题而言是比较适用的。
这里2倍的m中的2是为了之后的数字计算更加简洁,最终我们要找到w和b的值使得cost function的值尽可能小,在此之前我们要对这个代价函数到底在计算些什么有一个直观的intuition,可以直观地看出J是大还是小
通过一个示例逐步介绍代价函数(去除b的简化版)
通过成本函数的数学定义,对其实际作用build intuition
明确我们的模型,参数,成本函数和优化目标,进而通过简化的方式了解问题,将b设为0
(大前提都是b=0,也即当固定w则f为x的函数)当w为1时,f=x此时的训练集中数据(红色×)都为x=y,所以此时呢,J(w)为0,可以想象到的是当w不为1时,平方项绝对不为0因此J(w)也会均大于0,这也看出了w=1会使得J的取值最小
这里Andrew也计算出了当w取不同值的时候的J的取值
成本函数cost function及其可视化(使用w和b的完整版)
3D碗形曲面图也可以可视化为等高线图,等高线图是可视化3D成本函数J的便捷方式,并且在某种程度上它是以2D绘制的(其中最小值点即为最小椭圆形的中心)
左上方图为w,b在三种情况下于size-price图中的三条直线,右上方图为等高线图,下方图为成本函数J的3D图
再看两个w和b不同取值的成本函数可视化的例子
这两种情况都不适合此处的数据集,离最小值点较远,而下方的这种取值相对离最小值很近,拟合情况就会比较好(相比前面的两个例子)
值得注意的是,现在在线性回归中,rather than手动尝试读取w和b的最佳值的等高线图(这也不是一个很好的程序,一旦我们得到更复杂的机器学习模型时也不起作用)
所以此时我们需要的是一种可以用代码编写的,自动去寻找w和b的最优值的算法——梯度下降,而梯度下降也不仅仅只适用于linear regression,其应用场景也广泛。