[2018年最新整理]12支持向量机.ppt
文本预览下载声明
KPCA的去噪功能(USPS) Patterns 7291 train 2007 test Size: 16 x 16 Linear PCA Kernel PCA * Kernel Fisher Discriminant Analysis Kernel K-Means Clustering Kernel Independent Component Analysis …… 3.6 核函数方法在其它方面的应用 * Parameters’ selection for Multi-Kernel Constructing Special Kernel for Special Applications Data Driven Kernel Construction 3.7 核函数方面的研究 * 问题: 1.如果已知特征映射 则该特征映射 对应的核函数是? 2.给定两类样本:(0,0),(1,1);(1,0),(0,1) 求在核函数 导出的特征空间中两类 样本中心间的距离。 * * 总 结 支持向量机带给我们的启示: 要学会描述一个问题;要学会用优化模型描述一个问题;要学会用便于求解的优化模型描述一个问题。 要学会转化问题;要学会将陌生的问题转换成熟悉的问题;要学会将陌生的问题转换成便于求解的熟悉的问题。 * 相当于令函数间隔为1,这样就方便推导。 Ref:关于SVM一篇比较全介绍的博文 支持向量机SVM(一) jerrylead博客 * * 具体推导可以参考相关博文 * * 因为对于非支持向量alpha i 为0,因此,相当于新的x和所有的支持向量作内积运算,然后乘系数alphi,再求和。 * 在两条间隔线外的点前面的系数为0,离群样本点前面的系数为C,而支持向量的样本点前的系数在(0,c)上。 * 使用说明 训练结果 3. 利用SVM的C语言开发包编写自己的SVM分类器: svm_model *svm_train(const svm_problem *prob, const svm_parameter *param) double svm_predict(const svm_model *model, const svm_node *x) struct svm_problem{ int l; double *y; struct svm_node **x;}; struct svm_parameter{ int svm_type; int kernel_type; double degree; // for poly double gamma; // for poly/rbf/sigmoid double coef0; // for poly/sigmoid // these are for training only double cache_size; // in MB double eps; // stopping criteria double C; int nr_weight; int *weight_label; double* weight; // for C_SVC double nu; // for NU_SVC, ONE_CLASS, and NU_SVR double p; // for EPSILON_SVR int shrinking; // use the shrinking heuristics }; struct svm_node{ int index; double value;}; 1 1:-0.844335 2:-0.184362 3:0.046215 4:0.593243 5:0.140576 6:0.330716 7:0.172408 8:-0.105515 struct svm_model{ svm_parameter param; // parameter int nr_class; // number of classes int l; // total #SV svm_node **SV; // SVs (SV[l]) double **sv_coef; // coefficients for SVs in decision functions double *rho; // constants in decision int *label; // label of each class (label[n]) int *nSV; // numb
显示全部