构建一个逻辑回归模型:
可视化数据
在开始执行任何算法之前,最好尽可能的将数据可视化,
所以我们首先加载数据,并通过绘图函数将数据显示出来:
data = load('ex2data1.txt');
X = data(:, [1, 2]); y = data(:, 3);
pos=find(y==1);
reg=find(y==0);
plot(X(pos,1),X(pos,2),'k+',X(reg,1),X(reg,2),'ko','MarkerFacecolor','y');
xlabel('Exam 1 score')
ylabel('Exam 2 score')
legend('Admitted', 'Not admitted')
构建逻辑回归函数
逻辑回归函数的假设函数
逻辑回归函数的代价函数:
由于通过对数据的可视化来说,是个简单的逻辑回归二分类,所以是否有正则化对于结果区别不大,若是对于复杂的分类来说,正则化就显得非常重要了,下一个例子会讲。
逻辑回归函数的梯度:
使用fminunc学习参数
跟我们使用梯度下降法找到型的最优参数不同,梯度下降法需要写出成本函数,计算了它的梯度,然后相应地采取梯度下降步骤。
对于逻辑回归,我们可以使用一个称为fminunc的MATLAB内置函数,而不是使用梯度下降步骤。
MATLAB的fminunc是一个寻找非约束函数最小值的优化求解器。对于逻辑回归,我们可以通过该函数求解成本函数关于参数theta的最小值。
使用fminunc为逻辑回归成本函数找到最佳参数,给定一个固定的数据集(X和y值)。需要向fminunc传递以下输入:
1…我们要优化的参数theta的初始值。
2.一个根据训练集和不同的theta参数能算出逻辑回归的代价函数和梯度的函数。
fminunc函数的一般使用方法如下:`
% Set options for fminunc
options =