机器学习四

1

1-1

当研究一个机器学习问题时,建议使用一个简单粗暴的算法(可能并不是很完美)去实现,一旦有了一个算法实现,然后看看这个算法造成的错误,通过误差分析来优化算法。

1-2偏斜类与误差度量(查准率和召回率)

偏斜类:在分类问题中,一个类别的样本数非常多,另一个非常少,类别的样本数很极端。

出现偏斜类的模型,使用查准率和召回率来判断模型性能。

2d564c85c7204853afe90fc714a8fa40.png actual class是样本的实际类别,predictied class是用样本用模型预测的类别 。precision是查准率,recall是召回率。true positive(真阳性)=预测类别和实际类别都是阳性1。predicted postive=预测类别为阳性,actual positive=实际类别为阳性。

查准率是红线处的求法,召回率是黑线处的求法。

5d9c056ce7794d849c59aae22fde992c.png

还是肿瘤的例子,一种情况:只有在非常确定的情况,才预测是恶性肿瘤(y=1),此时,可以设置临界值为0.7或0.9等等,该预测模型会获得高的查准率和低的召回率。另一种情况:不希望错过太多的恶性肿瘤的患者,避免把他们误诊为良性,这时,会把h(x)的临界值设为0.3等等,该预测模型会获得高的召回率,低的查准率。

查准率和召回率的关系如上图右边,可能图像不是很准确,但一定是一方增大,另一方就会减小。

一个可以权衡查准率和召回率的算法,我们认为它有好的性能。

53d3a35e535946ca820736f2c5d3bacf.png 用F1分数来判断,P指的是查准率,R指的是召回率。F1分数越大,我们就认为这个算法更好,这里是算法1更好。

2.SVM算法

2-1 支持向量机(SVM)

是一种监督学习算法,按监督学习方式来二分类。

下面是的代价函数和假设函数,c是常量

8d8588eeeb544db08a44c96dedbc5cc6.png

 下图左边是cost1(z),右边是cost0(z)。cost1(z)的1指的是样本的y=1,cost0(z)中的0指的是样本的y=0。76cfd10f77f54ae9b8573d8ce144f991.png

 根据上面的假设函数,y=1时,本来只需z=θTx >=0就可以使hθ(x)=1,但因为代价函数的设置,会使θTx>=1,这样不仅使hθ(x)=1,也使代价函数最小。同理,y=0时。

2-2线性分类

支持向量机有时又被叫做大间距分类器。

f8ad4cff3ce146c99bb87a5e841047fc.png

代价函数可以转换为红框中的表达式,s.t.是指这种表达时的限制条件。

e762e42b99d64842979ff0bb82ef0f71.png 这种是可以线性划分的情况下,可以用红线、绿线和黑线都可以作为这个问题的决策边界,但黑线是SVM上张图优化的结果,比红线、绿线要好,可以更好地分开正负样本。因为这条黑色的决策边界到两条蓝线是决策边界到训练样本的距离,这个距离被叫做支持向量机的间距,可以看出黑色比红色、绿色离训练样本距离更远。这使得支持向量机具有鲁棒性。

当c非常大时,决策边界会对异常点非常敏感(类似逻辑回归的过拟合?)。

baf22e682ccc46d48dd614fea4568200.png

当c非常大且有异常点,决策边界会从黑线到红线,如果c不大且有异常点,那么还是黑线。

 a0e0816926d248f5abdd6cdf83c6e385.png

 如果不能线性分开,正样本区域有些负样本,负样本区域有些正样本,SVM也能正确地进行分类。

18b3ca9cb7c54f5d8d207ca973ad92b8.png

上图是SVM会选择大间距分类器的原因。 

2-3非线性分类

d953b50e6c114cceb0ea3b7ab185ca0d.jpg

 如上图,正负样本的决策边界非线性,上面hθ(x)是它的假设函数,当多项式....≥0预测y=1,但其实多项式中每一项是x1或者x2还是平方形式等等,这些具体形式对多项式...≥0并无影响,所以写成图中下方蓝字形式,f1,f2...

3f2192e9269b49a5845b4c52729418e9.jpg

 上图假设原本的特征是x1,x2。自己给出l(1),l(2),l(3)作为标记,把f1,f2,f3作为新的特征,将f1,f2,f3定义为相似度的度量。exp函数是eˣ函数,‖x‖表示向量x的长度,也就是向量模。σ是常数,这里f1,f2,f3的表达式都是核函数的形式,是高斯核函数。

4581e1add5a3484e8bddd4f9236d4b49.jpg

这里说明样本x≈l(1),也就是x离l(1)距离很近很近时,f1≈1。反之f1≈0。当给出l(i)和样本x就能求出f1 。

69799c241e854cb9acb3255257e311a3.jpg

这里假设l(i) =[3,5]T,列举了σ²=1,2,3时,f1函数的图像有三个轴,竖着的是f1轴,下面两个轴,分别是x1和x2。当x=l(1)=(3,5),f1可取最大值1,当x越偏离l(1)时,f1越小。最下面三张图是等高线图。

6a179951715240c2af07273ff7b8c29d.jpg

这里l(i)已知,θ也已知。这里取离l(1)近的红色点,则f1≈0,f2≈0,f3≈0,多项式...≈0.5≥0,则预测结果为1。如果取偏远的蓝色点,代入可知,多项式≈-0.5<0,则预测结果为0。

因为上图中θ3=0,所以θ3f3=0,所以多项式...的值只与f1,f2有关,又因为θ0,θ1,θ2的取值,所以离l(1)或l(2)近,多项式取值就会>0,样本的预测就会为1,就是正样本。所以决策边界如下图。

2928530b70a84258b9e327411d1ceda6.jpg

 关于标记l(i)的取值,直接将训练样本作为标记点。

233ee6027db4442fbc4bd5aa5fd8ae14.jpg

 aa84876402ee4d5f93030b8586a5dac2.jpg

如上图,当给出训练样本求出fj(i)。x(i)是n维向量,n是原本的特征的项数,x(i)是某个训练样本对应的一系列特征的取值。注意,fi(i)的值为1。这一步是为了代入代价函数求θ的取值

当给出样本x可以代入求出f,注意f0=1。

42b7fd962e604e4495d0fc87ca69e3d7.jpg

由前文可知,θᵀx(i)已被换为θᵀf(i)。f(i)由上张图求得。要是代价函数最小化,前面的项=0,代价函数可转换为

c947b44056144345a5085e8175e3876f.jpg

 其中n=m,1/2也可以省略。

5a3830f501624e5fadd0044b27d7f724.jpg

c的作用与1/λ类似,λ是逻辑回归中的正则化参数。如果c过大和逻辑回归中λ过小的效果一样,会造成低偏差,高方差,过拟合。其它如图。

还有σ²过大过小在前面也说过,过大会高偏差,低方差,fi曲线平缓;过小会低偏差,高方差,fi曲线陡峭。

2-4使用SVM

3k-means

3-1 无监督学习

对比监督学习,它的数据没有标签,没有对应结果。

所以把聚集在一起的点分成簇,这样样本就会分成若干簇,叫作聚类算法,是一种无监督学习算法。

3-2 k-means算法

把无标签的数据集自动地分成有紧密关系的子集或簇,k-means算法是运用最广泛的聚类算法。

k-means:

1.要分成若干类,先随机选择若干个聚类中心点

2.簇分配:样本点选择离它进的聚类中心点,归为该类。

3.移动聚类中心:上一步已经粗略分类,对每个类分别算出目前该类的均值点,该点作为新的聚类中心。

然后重复第2、3步,直到聚类中心不会再改变。

a887d0f44b054e2a9ec266e2447d96ab.jpg

 bb45f614543444fc885691740330a466.jpg

 c(i)的值表示特征为x(i)的样本选择得簇是哪个,c(i)∈{1,2,...,K}

K是类别数目,μk是聚类中心,其中k∈{1,2,...,K}。

3-3k-means目标优化(代价函数)

ca1e3a0692894d0e93d10a6086342a87.jpg

 μc(i)是样本x(i)所属类的聚类中心。

上图的下面部分就是代价函数,目标就是要使样本离该样本所属类的聚类中心近。

882117d4d50d4c6b8b9c7dfebe25cac4.jpg

这里重新看k-means算法的过程,这个算法过程就是在最小化代价函数。其中的簇分配是在通过改变代价函数的变量c(i)来最小化代价函数的值,移动聚类中心是在通过改变代价函数的变量μk来最小化代价函数的值。

3-4k-means的的随机初始化

58b79c2beacb4841975dfc2e6de01ffc.jpg

 m是样本(训练集)的数量。应该使类别的数目K<m。从训练集中随机选择K个样本,把这K个样本作为最开始的聚类中心。这就是随机初始化的过程。

ef17a20835474c05b55cf08807c73835.jpg

但是随机选择K个样本有很多的不同的方案,不同的K个样本会导致不同的分类结果,如上图,下面两种聚类结果不如上面的那种聚类结果,下面的聚类结果是局部最优,上面的聚类结果是全局最优。我们希望得到上面的聚类结果而不是下面的。所以通过多次随机化来得到全局最优的聚类结果。

9773074b865b4d78bb6e78b998038016.jpg

通过多次随机初始化,对每种初始化分别执行k-means 算法,再分别计算代价函数的值,选择代价函数最小的值对应的分类结果作为最终结果。

3-5K的选择

要选择把训练集分成多少个类。

47b83997006e4a749eac2bee853a01bf.jpg

 第一种方法,肘部法则。

K和代价函数的值有如下图所示的关系,如果是右图的情况,选择拐点处对应的K值作为最终的K值。但实际,往往会呈现右边所示的关系,没有明显的肘部,这时,肘部法则不适用。

第二种方法,根据需要。(更常见)

比如衣服厂商给衣服定型号,可以分为三种:s,m,l。也可以分为五种:xs,s,m,l,xl。到底分为几种,根据需要。

4.主成分分析法pca

4-1降维

降维的第一个应用:数据压缩,减小内存需求。

eb60855347a24c82b3904f321b5decb7.jpg 如上图,从2d降到1d,从原来的两个特征x1和x2降到一个特征z1,只需要一个数就可以确定z1所在的位置,完成对样本的描述。原来的特征是一个二维向量,现在是一个实数。如上图,通过降维把数据的内存需求减半。

280a0f2efa2a4dafac57bd430293f2ff.jpg

上图从3d降到2d,从一个三维向量降到二维向量。 

降维的第二个应用:可视化数据。

b540520e3a6244f7bf463a6bdf0a662b.jpg

上图假如有50个特征,但是绘制一个有50维的数据是很难的。但是把数据降到2维,其中一维是个人gdp,另一维是国家gdp。那么可视化数据就变得简单。

dae84deea3ff4611af41464b85d12827.jpg f111fd46ca264dd99404bea9cad57180.jpg

假如想把下面的数据降维,也就是想找到一条能够将数据投影到上面的直线。

e15eeb6444b04377a5b3bb2c037cf9ec.jpg

如下图,能找到很多数据可以投影到上面的直线,要从这么多直线中选择最好的 。蓝线画出了数据到投影直线的距离,就是投影误差。pca要做的就是会寻找一个能最小化数据到投影空间的距离的投影空间,也就是最小化总的投影误差。5917110a125f47759302c5f534aae00c.jpg

 在pca之前会进行均值归一化和特征规范化使得特征量x1,x2,...,xi的均值为0。

840cd2a6de5c4f198e13bce1901baddc.jpg

如上图两条投影直线,pca会选择橙色的线,而不是红色的线。

e9ac6e2380784c0da789df66959a9498.jpg 从二维降到一维,我们会选择一个向量来最小化投影误差,从n维降到k维,会选择k个向量来最小化投影误差。

d33972ca088d42c6838cc00d3dd649f0.jpg

上图选择了两个向量u(1),u(2)。投影误差就是原来的数据点到对应的投影平面上投影点的距离和。pca是要找到一个线,投影平面或其他维的空间来最小化投影误差。

14d97b33e7ea4211b4fb0f8e45ea60dc.jpg

pca不是线性回归,两个是不同的概念。pca的y轴是预测值y,它的误差是平行于y轴的蓝线,是预测值与实际值之间的误差,pca的y轴是一个特征,它的误差是垂直于投影直线的蓝线。

4-2pca算法过程

4-2-1数据预处理

090b275096b542b6a97680a8fc01b8a3.jpg

 首先,对数据预处理:均值归一化和特征规范化。

计算每个样本在原来的特征xj上的均值μj。如果不同特征的值相差很大,比如房子面积大概是100m²,但是房子数量是1000000。100和1000000差距很大,再用特征规范化,类似于特征缩放。

上图下面的蓝字就完成了对数据的预处理。

e9f876766cef4b6582b94eeb2e92b0fa.jpg

 4-2-2 基本算法

a283a631eb7e44409ae24fe59bc1b9aa.jpg

 数据预处理后,计算协方差∑,n是原来的特征数n维,m是样本数。然后用svd进行奇异值分解svd(∑),得到U矩阵。

dfff870c6f2f4fe18c544912f4791511.jpg

 从秋n*n的U矩阵中选取前k列,然后Ureduce矩阵=40402a4b0570449fa57368b6285ed42a.jpg

Z=Ureduceᵀ*X 。X矩阵的一列是一个用愿来特征值表示的样本,X是n×m维,Ureduce是n×k维,Z是k×m维,Z矩阵的一列是一个用新特征值表示样本。

或者,z(i)=Ureduceᵀ*x(i)。

4-3重建原始数据

压缩:

Z=Ureduceᵀ*X

从Z怎么变回X?

解压缩:

Xappox=Ureduce*Z,Xappox≈X

这就从Z变回原有空间。

4-4选择主成分的数量

4-5用处与建议

pca的用处:

降维:减小存储需求,加速学习算法。

可视化数据。

建议:1.过拟合往往需要减少特征数量,但pca并不是用来解决过拟合的好方法,解决过拟合问题建议使用正则化。

2.不建议在任何问题都直接使用pca来处理数据。建议先通常使用原有的数据来处理问题,当达不到想要的结果时,尝试使用pca。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值