1.需要记住的符号表示
m --- 训练集的大小(训练样本的数量)
x --- 特征
y --- 输出
n --- 特征数目
第 i 个训练样本的所有特征 Xi
第 j 个特征 Xj
所以第 i 个样本的 第 j 个特征为 Xji
通常情况下, 特征 X 是一个矩阵(m X n),如下图所示:
而Y则通常为一个列向量 n X 1
注意一行为一个样本;一列为一个特征
而(X(i),Y(i)) 表示第 i 个训练样本
通常情况下给定的训练数据是这样的
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
第一行为第一个训练样本,
第一列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开始计数
matlab中 help 函数名 查看详情,如 help pinv
A 是一个矩阵
得到A的size:[a b] = size(A) 则a = 5,b = 5
得到A的行数:a = size(A,1)
得到A的列数:b = size(A,2)
V为一个列向量,则 c = length(V) 得到V的行数
矩阵X矩阵 (列 = 行 、不可交换律)
[ m X n ] * [ n X p ] => [ mXp ]
在机器学习中常常是mXn * nX1
m X n为 X矩阵
n X 1 为 Y向量
得到的结果为mX1的一个向量,对应m个样本
pinv(A)得到矩阵A的逆矩阵
A‘得到A的转置矩阵AT
(转置矩阵 抽出第i行放到新矩阵的第i列)
C = ones(2, 3)
1 1 1
1 1 1
C = zeros(2, 3) 变成了0
C = rand(1, 3) 随机数填充
C = randn(1, 3)高斯填充
C = eye(5) 5阶单位矩阵
load('test.dat')导入数据
who 查看变量
whos详细查看变量
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
点的运算为每个元素,对应元素操作,而直接乘等为矩阵乘法
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)为设想函数,他的变量是x
hθ(x) = θθ + θ1x1 + θ2x2 + θ3x3 + …
Jθ(x)为损失函数,他的变量是θ
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函数
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函数
变成向量模式
2.梯度下降
变成向量模式
Normal equitation
正则化之后的梯度下降和Normal