(一) 線性迴歸
這個是進行線性擬合的。在學習過程中其實分了單變量線性迴歸和多變量線性迴歸,其實二者是核心算法是 一致的。
示例:
m個樣本,有n個特徵值;指的就是第i個樣本里面,第j個特徵(i=1,2,3,,,n,j=1,2,3,,m)
假設函數(hypothesis function)
其中就是我們所要求解的參數,目標是選擇合適的參數使得假設函數可以fit樣本,然後幫助我們去預測。
不斷更新參數所選取的目標函數
則線性迴歸的具體算法就是
注:1.這裏的參數是同步進行不斷更新的
2.我們處理數據是往往是令恆等1的,加了一列
3.而編程時往往也採取的是向量化,比如在matlab中 求和那部分(sum((theta*X-y)*X(:,i))
這裏對的求導進行的手動的推導
(二)正則方程法
、
代價函數還是沒有變化。
做法其實就是令 來求解參數。
推導過程如下:
(三)logistic 迴歸(Logistc regression)
這個是用作分類的,比如分成0和1兩類的算法。
我們 期待的代價函數是一個凸函數,也就是僅一個全局最優,這樣通過梯度下降法一定可以到達。
然後還是用梯度下降法:
這個求導後的結果寫法上式一樣的,但實質差別蠻大的。
(四)正則化
加了一個正則項懲罰項,使得參數不至於太大,防止過擬合。
(五)一些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)