本文主要讲解在matlab中实现Linear Regression和Logistic Regression的代码,并不涉及公式推导。具体的计算公式和推导,相关的机器学习文章和视频一大堆,推荐看Andrew NG的公开课。
一、线性回归(Linear Regression)
方法一、利用公式 :
function [ theta ] =linearReg()%线性回归。X=[1 1;1 2;1 3;1 4]; %注意第一列全为1,即x0=1,第二列才为x1
Y=[1.1;2.2;2.7;3.8];
A=inv(X'*X);
theta=A*X'*Y; %根据公式theta=(X'*X)^(-1)*X'*Y;
end
这种方法最简单,但是公式推导过程很复杂。
方法二:使用梯度下降法迭代
function theta=linearRegression()%梯度下降法寻找最合适的theta,使得J最小
options=optimset('GradObj','on','MaxIter',100);
inittheta=[1 1]';
theta=fminunc(@costFunc,inittheta,options);
end%%function [J,gradient]=costFunc(theta)%J为代价函数。%y=theta(0)*x0+theta(1)*x1; 找出最好的theta来拟合曲线。%使得J最小的theta就是最好的theta
x