机器学习—吴恩达_ 第10周_学习总结

机器学习—吴恩达_ 第10周_学习总结

21.11.8-21.11.14

一、无监督学习

6709f5ca3cd2240d4e95dcc3d3e808d5

在原有的监督学习中,无监督学习和监督学习相比监督学习有标签信息,但是无监督学习是没有标签信息的,我们需要使用特有的函数方法使数据集寻找数据中间的内在关系,如将上图分为两个点集(簇)的算法被称为聚类算法。

K-均值算法

  • 算法接收没有标记的数据集,然后将数据聚类成不同的组。
  • 是一个迭代算法,使用该算法的一般步骤为:
    1. 确定需要分的类数量n
    2. 选择K个随机的点,称为***聚类中心*** cluster centroids
    3. 于数据集中的每一个数据,按照距离 K K K个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类
    4. 计算每一个组的平均值,将该组所关联的中心点移动到平均值的位置。
    5. 重复上面步骤,到中心点不在变化

实例:

迭代一次

ff1db77ec2e83b592bbe1c4153586120

迭代3次

acdb3ac44f1fe61ff3b5a77d5a4895a1

迭代10次

fe6dd7acf1a1eddcd09da362ecdf976f

K-均值的代价函数-畸变函数

K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,其中 μ c ( i ) {{\mu }_{{{c}^{(i)}}}} μc(i)代表与 x ( i ) {{x}^{(i)}} x(i)最近的聚类中心点,要找使得代价函数最小的 c ( 1 ) c^{(1)} c(1), c ( 2 ) c^{(2)} c(2),…, c ( m ) c^{(m)} c(m) μ 1 μ^1 μ1, μ 2 μ^2 μ2,…, μ k μ^k μk

J ( c ( 1 ) , . . . , c ( m ) , μ 1 , . . . , μ K ) = 1 m ∑ i = 1 m ∥ X ( i ) − μ c ( i ) ∥ 2 J(c^{(1)},...,c^{(m)},μ_1,...,μ_K)=\dfrac {1}{m}\sum^{m}_{i=1}\left\| X^{\left( i\right) }-\mu_{c^{(i)}}\right\| ^{2} J(c(1),...,c(m),μ1,...,μK)=m1i=1mX(i)μc(i)2

  • 聚类数量的选择可以通过代价函数和K的图像来选择(拐点处-肘部法则)

f3ddc6d751cab7aba7a6f8f44794e975

聚类的相关资料

1.相似度/距离计算方法总结

(1). 闵可夫斯基距离Minkowski/(其中欧式距离: p = 2 p=2 p=2)

d i s t ( X , Y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p dist(X,Y)={{\left( {{\sum\limits_{i=1}^{n}{\left| {{x}_{i}}-{{y}_{i}} \right|}}^{p}} \right)}^{\frac{1}{p}}} dist(X,Y)=(i=1nxiyip)p1

(2). 杰卡德相似系数(Jaccard):

J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A,B)=\frac{\left| A\cap B \right|}{\left|A\cup B \right|} J(A,B)=ABAB

(3). 余弦相似度(cosine similarity):

n n n维向量 x x x y y y的夹角记做 θ \theta θ,根据余弦定理,其余弦值为:

c o s ( θ ) = x T y ∣ x ∣ ⋅ ∣ y ∣ = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 cos (\theta )=\frac{{{x}^{T}}y}{\left|x \right|\cdot \left| y \right|}=\frac{\sum\limits_{i=1}^{n}{{{x}_{i}}{{y}_{i}}}}{\sqrt{\sum\limits_{i=1}^{n}{{{x}_{i}}^{2}}}\sqrt{\sum\limits_{i=1}^{n}{{{y}_{i}}^{2}}}} cos(θ)=xyxTy=i=1nxi2 i=1nyi2 i=1nxiyi
(4). Pearson皮尔逊相关系数:
ρ X Y = cov ⁡ ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y = ∑ i = 1 n ( x − μ X ) ( y − μ Y ) ∑ i = 1 n ( x − μ X ) 2 ∑ i = 1 n ( y − μ Y ) 2 {{\rho }_{XY}}=\frac{\operatorname{cov}(X,Y)}{{{\sigma }_{X}}{{\sigma }_{Y}}}=\frac{E[(X-{{\mu }_{X}})(Y-{{\mu }_{Y}})]}{{{\sigma }_{X}}{{\sigma }_{Y}}}=\frac{\sum\limits_{i=1}^{n}{(x-{{\mu }_{X}})(y-{{\mu }_{Y}})}}{\sqrt{\sum\limits_{i=1}^{n}{{{(x-{{\mu }_{X}})}^{2}}}}\sqrt{\sum\limits_{i=1}^{n}{{{(y-{{\mu }_{Y}})}^{2}}}}} ρXY=σXσYcov(X,Y)=σXσYE[(XμX)(YμY)]=i=1n(xμX)2 i=1n(yμY)2 i=1n(xμX)(yμY)

Pearson相关系数即将 x x x y y y坐标向量各自平移到原点后的夹角余弦。

2.聚类的衡量指标

(1). 均一性: p p p

类似于精确率,一个簇中只包含一个类别的样本,则满足均一性。其实也可以认为就是正确率(每个 聚簇中正确分类的样本数占该聚簇总样本数的比例和)

(2). 完整性: r r r

类似于召回率,同类别样本被归类到相同簇中,则满足完整性;每个聚簇中正确分类的样本数占该类型的总样本数比例的和

(3). V-measure:

均一性和完整性的加权平均

V = ( 1 + β 2 ) ∗ p r β 2 ∗ p + r V = \frac{(1+\beta^2)*pr}{\beta^2*p+r} V=β2p+r(1+β2)pr

(4). 轮廓系数

样本 i i i的轮廓系数: s ( i ) s(i) s(i)

簇内不相似度:计算样本 i i i到同簇其它样本的平均距离为 a ( i ) a(i) a(i),应尽可能小。

簇间不相似度:计算样本 i i i到其它簇 C j C_j Cj的所有样本的平均距离 b i j b_{ij} bij,应尽可能大。

轮廓系数: s ( i ) s(i) s(i)值越接近1表示样本 i i i聚类越合理,越接近-1,表示样本 i i i应该分类到 另外的簇中,近似为0,表示样本 i i i应该在边界上;所有样本的 s ( i ) s(i) s(i)的均值被成为聚类结果的轮廓系数。

s ( i ) = b ( i ) − a ( i ) m a x { a ( i ) , b ( i ) } s(i) = \frac{b(i)-a(i)}{max\{a(i),b(i)\}} s(i)=max{a(i),b(i)}b(i)a(i)

(5). ARI

数据集 S S S共有 N N N个元素, 两个聚类结果分别是:

X = { X 1 , X 2 , . . . , X r } , Y = { Y 1 , Y 2 , . . . , Y s } X=\{{{X}_{1}},{{X}_{2}},...,{{X}_{r}}\},Y=\{{{Y}_{1}},{{Y}_{2}},...,{{Y}_{s}}\} X={X1,X2,...,Xr},Y={Y1,Y2,...,Ys}

X X X Y Y Y的元素个数为:

a = { a 1 , a 2 , . . . , a r } , b = { b 1 , b 2 , . . . , b s } a=\{{{a}_{1}},{{a}_{2}},...,{{a}_{r}}\},b=\{{{b}_{1}},{{b}_{2}},...,{{b}_{s}}\} a={a1,a2,...,ar},b={b1,b2,...,bs}

记: n i j = ∣ X i ∩ Y i ∣ {{n}_{ij}}=\left| {{X}_{i}}\cap {{Y}_{i}} \right| nij=XiYi

A R I = ∑ i , j C n i j 2 − [ ( ∑ i C a i 2 ) ⋅ ( ∑ i C b i 2 ) ] / C n 2 1 2 [ ( ∑ i C a i 2 ) + ( ∑ i C b i 2 ) ] − [ ( ∑ i C a i 2 ) ⋅ ( ∑ i C b i 2 ) ] / C n 2 ARI=\frac{\sum\limits_{i,j}{C_{{{n}_{ij}}}^{2}}-\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)\cdot \left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]/C_{n}^{2}}{\frac{1}{2}\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)+\left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]-\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)\cdot \left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]/C_{n}^{2}} ARI=21[(iCai2)+(iCbi2)][(iCai2)(iCbi2)]/Cn2i,jCnij2[(iCai2)(iCbi2)]/Cn2

二、数据压缩

  • 将数据从三维降至二维:将三维向量投射到一个二维的平面上,强迫使得所有的数据都在同一个平面上,降至二维的特征向量。

67e2a9d760300d33ac5e12ad2bd5523c

  • 主成分分析(PCA)是最常见的降维算法:

PCA中,我们要做的是找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量作垂线的长读。将 n n n维数据降至 k k k维,目标是找到向量 u ( 1 ) u^{(1)} u(1), u ( 2 ) u^{(2)} u(2),…, u ( k ) u^{(k)} u(k)使得总的投射误差最小

7e1389918ab9358d1432d20ed20f8142

主成分分析与线性回归是两种不同的算法。主成分分析最小化的是投射误差(Projected Error),而线性回归尝试的是最小化预测误差。线性回归的目的是预测结果,而主成分分析不作任何预测。上图中,左边的是线性回归的误差(垂直于横轴投影),右边则是主要成分分析的误差(垂直于红线投影)。

PCA 减少 n n n维到 k k k维算法:

第一步是均值归一化。我们需要计算出所有特征的均值,然后令 x j = x j − μ j x_j= x_j-μ_j xj=xjμj如果特征是在不同的数量级上,我们还需要将其除以标准差 σ 2 σ^2 σ2

第二步是计算协方差矩阵covariance matrix Σ Σ Σ
∑ = 1 m ∑ i = 1 n ( x ( i ) ) ( x ( i ) ) T \sum=\dfrac {1}{m}\sum^{n}_{i=1}\left( x^{(i)}\right) \left( x^{(i)}\right) ^{T} =m1i=1n(x(i))(x(i))T S i g m a = 1 m ∑ i = 1 n ( x ( i ) ) ( x ( i ) ) T Sigma=\dfrac {1}{m}\sum^{n}_{i=1}\left( x^{(i)}\right) \left( x^{(i)}\right) ^{T} Sigma=m1i=1n(x(i))(x(i))T

第三步是计算协方差矩阵 Σ Σ Σ特征向量eigenvectors):

0918b38594709705723ed34bb74928ba

对于一个 n × n n×n n×n维度的矩阵,上式中的 U U U是一个具有与数据之间最小投射误差的方向向量构成的矩阵。如果我们希望将数据从 n n n维降至 k k k维,我们只需要从 U U U中选取前 k k k个向量,获得一个 n × k n×k n×k维度的矩阵,我们用 U r e d u c e U_{reduce} Ureduce表示,然后通过如下计算获得要求的新特征向量 z ( i ) z^{(i)} z(i): z ( i ) = U r e d u c e T ∗ x ( i ) z^{(i)}=U^{T}_{reduce}*x^{(i)} z(i)=UreduceTx(i),其中 x x x n × 1 n×1 n×1维的,因此结果为 k × 1 k×1 k×1维度。

低维向高维: x x x为2维, z z z为1维, z = U r e d u c e T x z=U^{T}_{reduce}x z=UreduceTx,相反的方程为: x a p p o x = U r e d u c e ⋅ z x_{appox}=U_{reduce}\cdot z xappox=Ureducez, x a p p o x ≈ x x_{appox}\approx x xappoxx

01e1c4a2f29a626b5980a27fc7d6a693

高斯分布&&异常检测

高斯分布,也称为正态分布,例如变量 x x x 符合高斯分布 x ∼ N ( μ , σ 2 ) x \sim N(\mu, \sigma^2) xN(μ,σ2)则其概率密度函数为:

p ( x , μ , σ 2 ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) p(x,\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) p(x,μ,σ2)=2π σ1exp(2σ2(xμ)2)
μ μ μ σ 2 σ^2 σ2的计算方法如下:对阴影部分积分值为1
μ = 1 m ∑ i = 1 m x ( i ) \mu=\frac{1}{m}\sum\limits_{i=1}^{m}x^{(i)} μ=m1i=1mx(i) σ 2 = 1 m ∑ i = 1 m ( x ( i ) − μ ) 2 \sigma^2=\frac{1}{m}\sum\limits_{i=1}^{m}(x^{(i)}-\mu)^2 σ2=m1i=1m(x(i)μ)2

fcb35433507a56631dde2b4e543743ee

异常检测算法:对于给定的数据集 x ( 1 ) , x ( 2 ) , . . . , x ( m ) x^{(1)},x^{(2)},...,x^{(m)} x(1),x(2),...,x(m),我们要针对每一个特征计算 μ \mu μ σ 2 \sigma^2 σ2 的估计值:

μ j = 1 m ∑ i = 1 m x j ( i ) \mu_j=\frac{1}{m}\sum\limits_{i=1}^{m}x_j^{(i)} μj=m1i=1mxj(i) σ j 2 = 1 m ∑ i = 1 m ( x j ( i ) − μ j ) 2 \sigma_j^2=\frac{1}{m}\sum\limits_{i=1}^m(x_j^{(i)}-\mu_j)^2 σj2=m1i=1m(xj(i)μj)2

获得了平均值和方差的估计值,给定新的一个训练实例,根据模型计算 p ( x ) p(x) p(x)

p ( x ) = ∏ j = 1 n p ( x j ; μ j , σ j 2 ) = ∏ j = 1 1 1 2 π σ j e x p ( − ( x j − μ j ) 2 2 σ j 2 ) p(x)=\prod\limits_{j=1}^np(x_j;\mu_j,\sigma_j^2)=\prod\limits_{j=1}^1\frac{1}{\sqrt{2\pi}\sigma_j}exp(-\frac{(x_j-\mu_j)^2}{2\sigma_j^2}) p(x)=j=1np(xj;μj,σj2)=j=112π σj1exp(2σj2(xjμj)2)

p ( x ) < ε p(x) < \varepsilon p(x)<ε时,为异常。

异常检测VS监督学习

异常检测监督学习
非常少量的正向类(异常数据 y = 1 y=1 y=1), 大量的负向类( y = 0 y=0 y=0同时有大量的正向类和负向类
许多不同种类的异常,非常难。根据非常 少量的正向类数据来训练算法。有足够多的正向类实例,足够用于训练 算法,未来遇到的正向类实例可能与训练集中的非常近似。
未来遇到的异常可能与已掌握的异常、非常的不同。
例如: 欺诈行为检测 生产(例如飞机引擎)检测数据中心的计算机运行状况例如:邮件过滤器 天气预报 肿瘤分类

三、推荐系统(Recommender Systems)

根据用户数据预测:当已经有了数据的时候,我们可以通过对用户原有的数据进行预测出这个用户的趋向,如用户1给爱情片的分数很高,但是给动作片的分很低,我们可以推算出用户更多喜欢爱情片,于是可以将爱情片的类型推荐给用户。

基于内容的推荐系统:通过所有用户给这个电影的评价打分,得出这个电影的特征,如有两个特征:爱情片: x 1 = 0.8 x_1=0.8 x1=0.8;动作片: x 2 = 0.2 x_2=0.2 x2=0.2;我们知道电影的数据后,我们可以针对用户的喜好将该电影进行推送。

总之不管是通过对用户还是电影分析,我们都能得出一些特征。但是既没有用户的参数,也没有电影的特征,这两种方法都不可行了

协同过滤Collaborative filtering, CF

CF有两种基本方法:基于用户的协同过滤和基于项目的协同过滤。 步骤:

  • 了解数据库中有多少用户/项目与给定的用户/项目相似。
  • 考虑到与它类似的用户/项目的总权重,评估其他用户/项目,来预测你会给该产品用户的打分。

在协同过滤从算法中,我们通常不使用方差项,如果需要的话,算法会自动学得。
协同过滤算法使用步骤如下:

  1. 初始 x ( 1 ) , x ( 1 ) , . . . x ( n m ) ,   θ ( 1 ) , θ ( 2 ) , . . . , θ ( n u ) x^{(1)},x^{(1)},...x^{(nm)},\ \theta^{(1)},\theta^{(2)},...,\theta^{(n_u)} x(1),x(1),...x(nm), θ(1),θ(2),...,θ(nu)为一些随机小值

  2. 使用梯度下降算法最小化代价函数

  3. 在训练完算法后,我们预测 ( θ ( j ) ) T x ( i ) (\theta^{(j)})^Tx^{(i)} (θ(j))Tx(i)为用户 j j j 给电影 i i i 的评分

通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读懂的,但是我们可以用这些数据作为给用户推荐电影的依据。

例如,如果一位用户正在观看电影 x ( i ) x^{(i)} x(i),我们通过两部电影的特征向量之间的距离 ∥ x ( i ) − x ( j ) ∥ \left\| {{x}^{(i)}}-{{x}^{(j)}} \right\| x(i)x(j)的大小可以寻找另一部电影 x ( j ) x^{(j)} x(j)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔芋小灰菜

不要下次一定,要一键三连

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值