Logistic Regression即逻辑回归,又称作Logistic回归分析,是要预测的变量为有限个离散量(比如2个值)的回归分析问题,可以理解为对样本进行分类的学习方法。
与Linear Regression相似,我们也通过定义Cost Function,依据Gradient Decent的方法来进行Logistic Regression。如果套用Linear Regression的方法,使用
[cost, grad] = costFunction(initial_theta, X, y);
options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), ...
initial_theta, options);
以后在使用其他语言实现类似方法的时候,可以寻找相应的实现库,并选择性能好的实现库使用。类似的比较好的方法包括Conjugate Gradient、BFGS、L-BFGS方法等,均不需要自己选择Learning Rate,并且计算效率高,不过算法都相对更复杂更难理解一些。
在针对多类样本的Logistic Regression问题时,吴老师介绍了一种one-vs-all的方法,即将需要的一类拿出来,剩下的其他所有样本归为另一类,执行上述的回归分析,得到一个 hθ(X) 。然后对于需要预测的样本,分别带入各个类对应的 hθ(X) ,取值最大的为预测结果。
在Linear Regression和Logistic Regression中,如果训练的特征过多,模型过于复杂,可能导致训练出来的Decision Boundary过分依赖训练集中的每一个样本,这样并不利于在预测的时候得到好的预测结果。这种现象叫做Overfitting。
为了避免这一问题,引入一种Regularization的方法。即对Cost Function做修改: