机器学习1.1--模型和代价函数
内容来自Andrew老师课程Machine Learning的第一章内容的Model and Cost Function部分。
1、简单术语
m:训练样本的数目
x:输入变量/特征
y:输出变量/目标变量 :表示训练集的第i行
2、举例:
3、学习算法的工作
h表示hypothesis(假设)
4、线性回归拟合曲线
线性回归拟合函数: (
叫做模型参数)
对于不同的和
,
对应的曲线不同,如下图所示:
如何选择合适的 和
,使得
和y之间的误差最小?
这里使用了方差这一概念,为什么代价函数是 ,参见博客:http://blog.****.net/quiet_girl/article/details/68544273,里面是自己的一点理解。我们需要求解的便是使得
取最小值的
和
。
我们需要求出h(x)最小值对应的参数和
,为了简化操作,这里讲
设为0,因此,h(x)只与
有关,如下图:
对于训练集:
x | y |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
1、令的值为1,则h(x)=x,J(0,1)=0,如下图。
2、令的值为0.5,则h(x)=0.5x,J(0,0.5)=0.58,如下图
3、令的值为0,则h(x)=0.5x,J(0,0)=2.3,如左图。
如右图,每个的值对应一个曲线h(x),对于同一个数据集,每个h(x)对应一个J的值,用相应的
的值和J的值作图,观察可知,在
为1时,J的值取最小值,此时,代价函数是全局最小值。
这里引入轮廓图的概念。
对于下图所示的数据集,不同的参数对应不同的h(x)曲线,将这些曲线对应的J值画出,即形成第二个图新,在这个图形中,某一点的高度代表这一点对应的和
所对应的J值。
如右图,同一条轮廓线上不同的点,对应的J值相同。
将轮廓图平面化,取不同的轮廓图上的点对应的h(x)曲线,观察其拟合程度。
1、取右图中的一点,大概是值为800,
值为-0.15,其对应的h(x)图形如左图所示,很明显,这个h(x)拟合性并不好。
2、取右图中的一点,大概是值为400,
值为0,其对应的h(x)图形如左图所示,这个h(x)拟合性也并不是很好。
3、取右图中的一点,大概是值为0,
值为-0.03,其对应的h(x)图形如左图所示,这个h(x)拟合性不好。
4、取右图中的一点,大概是值为300,
值为0.15,其对应的h(x)图形如左图所示,很明显,这个h(x)对应的J值要比之前的几个点对应的J值小得多,虽然其不是最优值,但是其越来越接近于最优值。
我们的目标就是使用代码实现寻找最优J值对应的和
的值。