吴恩达机器学习——第一部分_线性回归和logistic回归

(一) 线性回归

这个是进行线性拟合的。在学习过程中其实分了单变量线性回归和多变量线性回归,其实二者是核心算法是 一致的。

示例:

m个样本,有n个特征值;X^{_{j}^{i}}指的就是第i个样本里面,第j个特征(i=1,2,3,,,n,j=1,2,3,,m)

         假设函数(hypothesis function)

其中\theta就是我们所要求解的参数,目标是选择合适的参数使得假设函数可以fit样本,然后帮助我们去预测。

不断更新参数\theta所选取的目标函数 

则线性回归的具体算法就是

注:1.这里的参数\theta := \theta是同步进行不断更新的

        2.我们处理数据是往往是令X^{_{1}^{i}}恒等1的,加了一列

        3.而编程时往往也采取的是向量化,比如在matlab中 求和那部分(sum((theta*X-y)*X(:,i))

这里对J\left ( \theta \right )的求导进行的手动的推导

(二)正则方程法

 、

   代价函数还是没有变化。

做法其实就是令\frac{\partial J }{\partial \theta } = 0 来求解参数。

推导过程如下:

(三)logistic 回归(Logistc regression)

这个是用作分类的,比如分成0和1两类的算法。

 我们 期待的代价函数J\left ( \theta \right )是一个凸函数,也就是仅一个全局最优,这样通过梯度下降法一定可以到达。

然后还是用梯度下降法:

这个求导后的结果写法上式一样的,但实质差别蛮大的。

(四)正则化

加了一个正则项惩罚项,使得\theta参数不至于太大,防止过拟合。

(五)一些matlab命令

自己总结的,matlab 命令
1.复杂的输出:disp(sprintf(‘2 decimals:%0.2f’,a))
2.v=1:0.1:2  v是一组值,从数值1开始,增量或者说步长是0.1,直到增加到2
3.rand(3,3) 生成一个3x3的矩阵,并且元素随机(加参数可以生成正态分布的随机变量或高斯随机变量)
4.画直方图:hist(w);hist(w,10) %w为一个向量
5.A为mxn大小矩阵,size(A)返回m 和 n;而length(A)返回3(最大的)
6.pwd显示当前路径
7.A=[A,[100;101;102]] 为原来的A矩阵在右边附上一个新添加的列矩阵
8.矩阵的乘法中A*B 或者A.*B(矩阵对应元素相乘)(A.^2,A中每个元素平方)
9.A'是A的转置;sum(A,1)得到每一列的总和;pinv(A)求A的逆
10.plot(t,y);xlabel('time');ylabel('value');legend('sin','cos')(图例);title('myplot')
     subplot(121);设置x,y轴的范围axis([0.5 1 -1 1])
11.可视化矩阵:imagesc(A)
 

猜你喜欢

转载自blog.csdn.net/zyr_freedom/article/details/86482364