续上:SVM中的kernel
带Kernel 的linear regression
kernel可应用到别的算法,不仅仅在SVM
一、常见kernel
l 多项式:二维到三维

l 高斯核函数(需要正规化)



l sigmoid kernel

l cosine similarity kernel

l chi-squared kernel

二、linear regression 曲线

三、带kernel 的PCA
如果我们将m个数据点映射到一个>=m维空间中,就能很容易地构建一个超平面将数据点做任意分类。
PCA定义:

3.1 PCA降维过程
牺牲一部分信息,过滤掉一些干扰(信息压缩,信息的损失最少)
有两个特征值,保留大的(方差最大的方向)
第2步:使得均值在原点,即均值为0

3.2 kernel PCA
实例:

先kernel投影到高维空间,再用PCA降维

线性-->非线性

使用kernel


结论:只需要用kernel函数,不用先映射到一个高维空间

PCA后的Kernel和原来的kernel不是同一个kernel
3.3 kernel的选择与参数
3.3.1 交叉验证(cross validation)

调参:选择validation

|
parameter_candidates = [ {‘C’:[1,10,100,1000],’kernel’:[‘linear’]} {‘C’:[1,10,100,1000],’gamma’:[0.001,0.0001],’kernel’:[‘rbf’]} ] clf = GridSearchCV(estimator = svm.SVC(),param_grid=parameter_candidates,cv = 5,n_jobs = -1) //n_jobs 多线程,=-1用所有的CPU clf.fit(X_train,y_train)
|
3.3.2 VC维
https://www.zhihu.com/question/31727466
为什么用kernel更加容易计算
理论:它反映了模型的学习能力,VC维越大,则模型的容量越大



线性分类器:逻辑回归、线性回归、线性SVM