1.需要記住的符號表示
m --- 訓(xùn)練集的大猩匏病(訓(xùn)練樣本的數(shù)量)
x --- 特征
y --- 輸出
n --- 特征數(shù)目
第 i 個訓(xùn)練樣本的所有特征?Xi
第 j 個特征?????Xj
所以第 i 個樣本的 第 j 個特征為 Xji
通常情況下筹煮, 特征 X 是一個矩陣(m X n),如下圖所示:
而Y則通常為一個列向量 n X 1
注意一行為一個樣本氓鄙;一列為一個特征
而(X(i),Y(i)) 表示第 i 個訓(xùn)練樣本
通常情況下給定的訓(xùn)練數(shù)據(jù)是這樣的
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
45.08327747668339,56.3163717815305,0
第一行為第一個訓(xùn)練樣本,
第一列34.62365962451697為第一個特征嗡贺,第二列78.0246928153624為第二個特征
第三列0為輸出y
所以我們常常需要把它分割成: X 矩陣 + Y 向量
分割方法:
data = load('ex2data2.txt');
X = data(:, [1, 2]); y = data(:, 3); //X為data矩陣的所有行 的 第一和第二列 Y為data矩陣的所有行 的第三列
2.matlab中矩陣的加減乘除以及其他的方便運算
matlab中向量從1開始計數(shù)
matlab中 help 函數(shù)名 查看詳情隐解,如 help pinv
A 是一個矩陣
得到A的size:[a b] = size(A) 則a = 5,b = 5
得到A的行數(shù):a = size(A,1)
得到A的列數(shù):b = size(A,2)
V為一個列向量,則 c = length(V) 得到V的行數(shù)
矩陣X矩陣 (列 = 行 诫睬、不可交換律)
[ m X n ]?*?[ n X p ] => [ mXp ]
在機器學(xué)習(xí)中常常是mXn?? * ??nX1
m X n為 X矩陣
n X 1 為 Y向量
得到的結(jié)果為mX1的一個向量煞茫,對應(yīng)m個樣本
pinv(A)得到矩陣A的逆矩陣
A‘得到A的轉(zhuǎn)置矩陣AT
(轉(zhuǎn)置矩陣 抽出第i行放到新矩陣的第i列)
C = ones(2, 3)
1 1 1
1 1 1
C = zeros(2, 3) 變成了0
C = rand(1, 3) 隨機數(shù)填充
C = randn(1, 3)高斯填充
C = eye(5) 5階單位矩陣
load('test.dat')導(dǎo)入數(shù)據(jù)
who 查看變量
whos詳細(xì)查看變量
clear a 清除變量a
clear 清除所有變量
拼接矩陣
A = [A, [100; 101; 102]];
左右拼接
C = [A,B]
上下拼接
C = [A;B]
刪除某些行
A(1, :) = [] 刪除第一行
找到某些列
A([1 3], :) 第一行和第三行的所有列 第二個變量表示所有的
矩陣的 點乘 與 乘 ,點除......
點乘 C = A .* B
乘法 C = A * B
C =1 ./ A
C = A .^ 2
點的運算為每個元素,對應(yīng)元素操作摄凡,而直接乘等為矩陣乘法
log(A)
exp(A)
abs(A)
-V
max(V)
sum(A,1) sum(A,2)
A < 3
A中小于3的元素變成1续徽,大于等于3的變成0
A = magic(3)
find(a<3)
prod(A)
floor(A)
ceil(A)
flipud
3.常使用的公式
hθ(x)為設(shè)想函數(shù),他的變量是x
hθ(x) = θθ + θ1x1 + θ2x2 + θ3x3 + …
Jθ(x)為損失函數(shù)亲澡,他的變量是θ
Jθ(x) = (1/m)∑Cost(hθ(x(i) - y(i)))
在lenear regression 中 Cost(hθ(x(i) - y(i))) = (1/2) * (x(i) - y(i))2 ;
在logistic regression 中 Cost(hθ(x(i) - y(i))) = -y(i)*loghθ(x(i)) - (1 - y)(i) *loghθ(1-(x(i)));
1.向量表示
hθ(x) = X * θ
線性回歸中
1.Cost函數(shù)
J = 1/(2 * m) * sum((X * theta - y) .^2)钦扭;
梯度
(1 / m) * X'* (X * theta - y);
更新公式
p = alpha * (1 / m) * X'* (X * theta - y);
theta = theta - p床绪;
邏輯回歸中
1.Cost函數(shù)
變成向量模式
2.梯度下降
變成向量模式
Normal equitation
正則化之后的梯度下降和Normal