本文是观看斯坦福大学吴恩达老师的机器学习视频后的一些心得体会和总结,以及作业题中的关键代码,大家可以共同讨论进步。
之前的线形回归是对结果为连续量的数据集做出一个拟合,比如拟合出一条直线,而逻辑回归是要对结果为离散量的数据集能够产生一个预测机制,比如输出为0或者1,这就是一个离散量的输出,不管输入何值,输出必然是0或者是1,所以,逻辑回归要做的事情就是预测结果是0还是1,进一步说,就是做一个分类器。
作业中,我们有这样一个数据集,输入为X1,X2,而输出则是0或是1,我们可以运用如下代码,画出更为直观的图像。
% Find Indices of Positive and Negative Examples
pos = find(y==1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);
plotData.m中我们要写的代码
我们得到的图像
线性回归中,h=X*theta',但是对于我们逻辑回归,由于输出是离散的,所以继续套用这个公式,很明显得到的输出值不是我们想要的,于是我们引入了一个函数sigmoid(z)=1/(1+exp(-z)),我们令z=X*theta‘,则h=sigmoid(X*theta')。由于sigmoid函数大于0小于1,以(0,0.5)中心对称,当h大于0.5时