非线性转换

我们之前的课程都是假设数据是线性可分的,那么我们就可以用一条直线将其分开。
比如,想这样
这里写图片描述
然而现实生活中并不是这样的
这里写图片描述 
像上面的那张图,无论我们用怎样的线性模型都无法将其很好的分开。但是我们发现一个圆可以很好的解决这个问题
这里写图片描述
他的分类器方程为
这里写图片描述
那么我们把1,x21x22设定为z0,z1,z2,就相当于得到了一条关于z的线性方程。
这里写图片描述
也就是说,我们可以通过一个函数Φ(x)把x映射到z上面,那么就可以把可用圆分开的数据集xn,yn,转换成可用直线分开的数据集zn,yn
这里写图片描述
就把上面左边的图映射到右边的图了。

那具体该怎么做呢???
首先我们把x域的数据点{x,y}通过函数Φ(x)全部映射到z域,即
这里写图片描述
然后用z域的数据 { z , y } 训练模型,即
这里写图片描述
以后,每来一个新样本(x,y),我们救将其转化到z域上面,得到(z,y),然后用上面的模型对该新样本(z,y)进行分类即可。
这里写图片描述

可是,这个Φ(x)该怎么选呢???并不知道啊!!!求大神告知!!!(可以参考svm的核函数)

貌似,我们可以通过这种方法表示出所有的模型,但是这并不是全能的,他有很大的缺点限制这他的使用。
当x的次数越高,模型就越复杂,就会把一些误差给记住,那么虽然Ein此时很低,但是并不能使得E=Ein。过拟合。
当x次数太低,模型简单,虽然能保证E=Ein,但是不能保证Ein此时低。欠拟合。

还有我们怎么确定Φ(x),也就是x的形式是怎样的。我们之前的例子x的形式是椭圆,即有x21,x22,这样就知道了Φ(x)。那么问题就是,凭什么是圆,其实椭圆也是可以的。其实这是根据我们肉眼观察的,这样的做法是不科学的。首先,如果是10维的话,我们肉眼是看不出来的。即使可以看出来,由于结果是我们人脑学习出来的,所以我们计算出来的错误虽小,但是并没有把我们人脑引起的误差算进去。也就是,可能其实用椭圆比用圆更好。所以Φ(x)的形式,不能根据人眼观察得到。

最后一个知识点是:
这里写图片描述 
对于上面的图形我们并不陌生。我们最终的目的是希望 out-of-sample error最小,而不是 in-sample error最小。所以,我们应该最先建立一个很简单的模型,逐渐改进;千万不要一开始就弄一个复制的模型,那样就不好评估,你估计还以为你的算法很好,其实早已经过拟合了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值