binary classification 1 output unit
multi-class classification(k classes) k output units
对logistics regression 和linear regression来说,选择一个足够复杂能够有很高预测精度的function就意味着要构建很多的feature,假如要构建一个二次方程形式的hθ,如果有100个attribute,就意味着要构建5000个feature,而且即使这样很多时候二次方程也不能很好的拟合数据。
在图像处理上,如果图像的像素很大,linear hypothesis要构建的feature就很多,运算量也会变的很大。
当从训练集中提取过多的属性用来建立hypothesis时,可能导致过度适应数据,选取某些很复杂的方程可以很完美的贴合训练集数据,但是对要预测的用例可能并不会有很好的表现
为了解决这一点,实际上就要剔除掉模型中那些实际上导致overfitting的属性
如上图所示就是overfitting的情况,在做机器学习的时候,很多时候我们刚开始的时候并不知道选取哪些属性,只能尽可能多的选取属性来构建hypothesis拟合训练集中的数据,很容易导致overfitting的情况,但是我们又不能主观的减少选取的属性,为了解决overfitting问题必须提出一个新的cost function,而解决overfitting的过程称为regularization
用以下两个式子来做cost function
cost function:-log(hθ(x)) 当y =1
cost function:-log(1-hθ(x)) 当y = 0
可以看到当y为1时,如果hθ(x)得到的是1,那么cost function为0,如果hθ(x)得到的是0,那么cost function趋向于正无穷,当y为0时,如果hθ(x)得到的是1,那么cost function趋向于正无穷,得到的为0,cost function为0。
cost function是用来评价hypothesis对训练集的贴合度的,对于分类的情况,这样的cost function完美的表现了这一点,真是数学的魅力。
梯度函数
对于linear regression来说,我们可以选用不同的函数形式来拟合不同分布表现的数据,但我们仍然会得到一条linear function形态的hypothesis,因为我们选用不同的函数形式,实际上是对feature的重新利用而不是真正选用了新的函数形式。
如果我们要对离散的数据进行拟合,即classification,那么就需要用到logistic regression,而logistic regression是真正的改变了函数形式。
在linear regression中,hypothesis的形式为h(x) = θ*x