机器学习常记必备

1.需要记住的符号表示

m --- 训练集的大小(训练样本的数量)
x --- 特征
y --- 输出
n --- 特征数目

第 i 个训练样本的所有特征 Xi
第 j 个特征     Xj
所以第 i 个样本的 第 j 个特征为 Xji

通常情况下, 特征 X 是一个矩阵(m X n),如下图所示:


图片.png

而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 向量


图片.png
图片.png

分割方法:
data = load('ex2data2.txt');
X = data(:, [1, 2]); y = data(:, 3); //X为data矩阵的所有行 的 第一和第二列 Y为data矩阵的所有行 的第三列

2.matlab中矩阵的加减乘除以及其他的方便运算

matlab中向量从1开始计数
matlab中 help 函数名 查看详情,如 help pinv
A 是一个矩阵


图片.png

得到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]];

图片.png

图片.png

左右拼接
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函数


图片.png
图片.png

变成向量模式


图片.png

2.梯度下降


图片.png

图片.png

变成向量模式
图片.png

Normal equitation

图片.png

正则化之后的梯度下降和Normal

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容