SVM: 使用kernels(核函数)的整个SVM算法过程
将所有的样本都选做landmarks
一种方法是将所有的training data都做为landmarks,这样就会有m个landmarks(m个trainnign data),这样features就是某个x(可以是trainning data/cross validation data/test data里面的)与这些landmarks之间的距离的远近程度的描述。
landmarks选定后得出新的features向量
给出一个x,则通过这些landmarks来计算features向量,和之前的类似,将f0=1;
对于在training data里面的x(i)则通过kernel函数映射后变为f1(i),f2(i).....fm(i)(m个trainning data,m个landmarks),对于fi(i),由高斯核函数计算得出1
如何minimize cost function得出parameters-- θ
我们根据核函数计算出new features f(有m+1维):m个landmarks(m个data set),+1是f0=1
cost function与之前的有些不同,因为我们用了新的features,所以z不是θTx(i)而是θTf(i);后面的正则化项因为θ为m+1维,不对θ0正则化,即从θ1-m进行累加
这儿需要注意的是在使用SVM与核函数时,不是使用θTθ来表示parameters的平方的累加,而是使用θTMθ(M为依赖于采用的某个核函数的矩阵),为另一种略有区别的距离度量方式,不使用||θ||2进行最小化,而是最小化另一种类型的度量(参数向量θ的变尺度形式,这种变化和核函数有关),这样使得SVM有效率的运行,之所以这样做是为了适应大的数据集,因为当我们的数据集很大的时,landmarks就会很多,θ的维数也会很大,这样计算θ就会很慢,所以做了这样的优化。
kernels能应用到其它算法吗?如logistic regression等?可以将kernels应用到其它算法,但是用于SVM的计算技巧却不能较好的推广到其它算法(如logistic regression),所以将kernels应用到logistic regression时,会变得非常慢。
SVM与kernels是相配的,而logistic regression与kernels会十分慢。
一些计算小技巧是人们专门为使用kernels的SVM来开发的
如何确定SVM的一些参数(如C与高斯核函数的σ2)--bias与variance之间的权衡
C=1/λ,λ为正则化参数,当C大时,表示λ小,则会high variance,low bias(overfitting)
当C小是,表示λ大,则会high bias, low variance(underfitting)
σ2为高斯核函数的参数,用来表示f(新的features)与x之间变化是平缓的还是急剧的。
大的σ2,表示参数的值随着x的变化而变化平缓,所以会出现underfitting(high bias,lower variance)
小的σ2,表示参数的值随着x的变化而变化急剧所以会出现overfitting(high variance,lower bias)
最新文章
- nginx 配置https upstream 跳转失败
- Win7电脑无法启用无线连接或无线连不上网
- 用JSON-server模拟REST API(三) 进阶使用
- Ruby--String
- 【jmeter】non-gui模式运行
- jquery实现定时调度(倒计时)
- Spark学习计划
- windows server 2008 NTP授时服务[转]
- php获取server端mac和clientmac的地址
- Linux内核分析(三)----初识linux内存管理子系统
- Maven基本安装与配置
- 同时只允许Count个线程访问同一块区域的实现方式
- keras 中模型的保存
- CloudFoundry 之 IBMCloud 项目部署.NETcore例子
- Huawei® ENSP &; VRP CheatSheet
- swap 用指针交换两个整型数值
- CentOS 7卸载Docker
- bootstrap弹出模态框
- Microsoft-Excel Sheet Column Number
- 编程六月定律 | 外刊IT评论网