精华内容
下载资源
问答
  • 将2D高斯核函数根据非正交方向进行分解,得到一维的x轴和其他方向的高斯函数,通过统计学方法,将分解的高斯函数与卷积滤波器或者迭代滤波器结合进行边缘检测。
  • svr代码和RBF核函数

    2018-04-04 17:40:28
    svr代码和RBF核函数,可以对初学者进行指导,有一定的使用价值
  • 支持向量机的相关经典案例,里面包含线性核函数和非线性核函数,另外还有实例:支持向量机手写数字识别;内含测试集训练集、代码源文件及注释,可直接运行(需安装numpy和matplotlib)
  • 支持向量机小波核函数 支持向量机小波核函数 支持向量机小波核函数
  • 支持向量机SVM和核函数的matlab程序集
  • 使用rbf核函数4.2.使用linear核函数 1.实验目的 1.使用sklearn的digits数据集(即从sklearn.datasets导入load_digits) 2.训练SVM分类器,然后,使用诸如rbf和linear的不同内核来测量模型的准确性。 3. 使用正则化和...

    1.实验目的

    1.使用sklearn的digits数据集(即从sklearn.datasets导入load_digits)
    2.训练SVM分类器,然后,使用诸如rbf和linear的不同内核来测量模型的准确性。
    3. 使用正则化和伽玛参数进一步调整模型,并尝试获得最高准确度得分 使用80%的样本作为训练数据量

    2.导入必要模块

    import pandas as pd
    from sklearn.datasets import load_digits
    

    3.用pandas处理数据

    digits = load_digits() #加载数据
    df = pd.DataFrame(digits.data, digits.target)  #构建df(数据、索引)
    df.head()
    

    在这里插入图片描述

    df['target'] = digits.target   #增加一个标签字段
    df.head()
    

    在这里插入图片描述

    4.拟合+预测

    from sklearn.model_selection import train_test_split
    
    X_train, X_test, y_train, y_test = train_test_split(df.drop('target',axis='columns'),df.target,test_size=0.3)
    

    4.1.使用rbf核函数

    from sklearn.svm import SVC
    
    rbf_model = SVC(kernel='rbf')
    rbf_model.fit(X_train,y_train)   #用训练数据拟合
    rbf_model.score(X_test,y_test)   
    

    在这里插入图片描述
    使用rbf核函数测试准确率只有42.96%,可见该核函数效果不佳。
    在这里插入图片描述

    4.2.使用linear核函数

    linear_model = SVC(kernel='linear')
    linear_model.fit(X_train, y_train)
    linear_model.score(X_test,y_test)
    

    使用linear核函数测试准确率达到97.41%,可见该核函数效果很好。
    在这里插入图片描述

    展开全文
  • 一、应用SVM的关键在于核函数的选用,常用于图像处理的核函数主要有三个:linear(线性核), rbf(径向基函数),polynomial(多项式核)。 核函数的选用:针对不同的特征向量类型选用不同的核函数,简单选用核函数的...

    一、应用SVM的关键在于核函数的选用,常用于图像处理的核函数主要有三个:linear(线性核), rbf(径向基函数),polynomial(多项式核)。

    核函数的选用:针对不同的特征向量类型选用不同的核函数,简单选用核函数的方法就是:

    1、linear:针对的是高维特征向量,特征向量里面的值跳变不能太大,例如Gabor变换提取的图像特征向量(4400维)。

    2、rbf: 使用的范围较广,是SVM的默认核函数,适用于维数较低的,值跳变不大的特征向量。(LBP提取的低维特征向量,P邻域值、u2映射、riu2映射会影响向量的维数)

    3、polynomial : 多项式核函数,非常适用于图像处理,可调节参数\sigma(可通过交叉验证或者枚举法获得)来获得好的结果。

    clc
    clear
    close all
    a = [];
    k =3;
    b=[];
    
    load break.mat  
    load finger.mat
    load 
    展开全文
  • 支持向量机SVM和核函数的matlab程序代码--完整,调试过的有效的程序
  • 高斯核函数是SVM中使用最多的一种核函数,对比高斯函数x-u,高斯核函数中表征的是两个向量(x,y)之间的关系,高斯函数又被称为RBF核和径向基核函数。在多项式核函数中,我们知道多项式核函数是将数据点添加多项式项,...

           高斯核函数是SVM中使用最多的一种核函数,对比高斯函数x-u,高斯核函数中表征的是两个向量(x,y)之间的关系,高斯函数又被称为RBF核和径向基核函数。在多项式核函数中,我们知道多项式核函数是将数据点添加多项式项,再将这些有了多项式项的特征点进行点乘,就形成了多项式核函数,对于高斯核函数也是一样,首先将原来的数据点映射成一种新的特征向量,然后得到新的特征向量点乘的结果,对高斯核函数来说,本质就是将每一个样本点映射到一个无穷维的特征空间,这就表明高斯核函数对于样本数据的变形是非常复杂的,但是经过变形,再去点乘,得到的结果却是非常简明的,就是核函数中的式子,这样也表明了核函数的威力。


            回忆一下多项式特征,就是依靠升维使得原本线性不可分的数据变得线性可分。比如下图中,有一维数据线性不可分,但是添加多项式特征后就可以在二维空间中线性可分。



          本质上,高斯核也在做类似的事情,为了方便可视化,对核函数进行改变,对于y值不取样本点,取固定的值,取两个固定的点l1,l2(landmark)。高斯核函数对于一维数据升维成二维点,这样我们就将一维的样本点映射到了二维空间,具体取值下图所示,并通过程序模拟是怎样通过这样一个高斯核函数将一维线性不可分的数据变得线性可分的。


    import numpy as np
    import matplotlib.pyplot as plt
    #准备数据
    #x一维向量[-4 -3 -2 -1  0  1  2  3  4];y[0 0 1 1 1 1 1 0 0]
    x=np.arange(-4,5,1)
    print(x)
    y=np.array((x>=-2)&(x<=2),dtype=int)
    print(y)
    plt.scatter(x[y==0],[0]*len(x[y==0]))
    plt.scatter(x[y==1],[0]*len(x[y==1]))
    plt.show()
    由图可以看出,显然线性不可分,接着,通过高斯核函数映射到二维
    #定义高斯核函数
    def guess(x,l):
        gamma=1.0
        return np.exp(-gamma*(x-l)**2)
    #landmark
    l1,l2=-1,1
    #x_new,len(x)行,两列,第一列(np.exp(-gamma*(x-l1)**2)),第二列np.exp(-gamma*(x-l2)**2)
    x_new=np.empty((len(x),2))
    for i,data in enumerate(x):
        x_new[i,0]=guess(data,l1)
        x_new[i,1]=guess(data,l2)
    plt.scatter(x_new[y==0,0],x_new[y==0,1])
    plt.scatter(x_new[y==1,0],x_new[y==1,1])
    plt.show()
    对于这样一个二维数据,显然线性可分,如下图所示。

    但在实际中,高斯核函数每个数据对每一个数据点都是landmark,成为新的高维数据中对应的每个元素。m*n的数据映射成了m*m的数据。高斯核函数的计算开销比较大,所以训练时间一般较长,但尽管如此,还是在有些领域非常适合使用高斯核函数,初始样本数据维度本身就比较高,但是样本数据数量不多,当M<N时,比较划算,例如自然语言处理

    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import datasets
    from sklearn.preprocessing import StandardScaler
    from sklearn.svm import SVC
    #使用管道将StandardScaler和SVC连在一起
    from sklearn.pipeline import Pipeline
    
    x,y=datasets.make_moons(noise=0.15,random_state=666)
    print(x)
    print(y)
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.show()
    
    def RBFKernelSVC(gamma,C):
        return Pipeline([
            ('std_scaler',StandardScaler()),
            #采用高斯核函数rbf
            # gamma越大,高斯图形越窄,模型复杂度越高,容易导致过拟合
            # gamma越小,高斯图形越宽,模型复杂度越低,容易导致欠拟合
            ('svc',SVC(kernel='rbf',gamma=gamma,C=C))
        ])
    
    svc1=RBFKernelSVC(0.1,1)
    svc1.fit(x,y)
    svc2=RBFKernelSVC(1,1)
    svc2.fit(x,y)
    svc3=RBFKernelSVC(10,1)
    svc3.fit(x,y)
    svc4=RBFKernelSVC(100,1)
    svc4.fit(x,y)
    
    svc5=RBFKernelSVC(0.1,5)
    svc5.fit(x,y)
    svc6=RBFKernelSVC(1,5)
    svc6.fit(x,y)
    svc7=RBFKernelSVC(10,5)
    svc7.fit(x,y)
    svc8=RBFKernelSVC(100,5)
    svc8.fit(x,y)
    def plot_decision_boundary(model,axis):
        x0,x1=np.meshgrid(
            np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)),
            np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100))
        )
        x_new=np.c_[x0.ravel(),x1.ravel()]
        y_predict=model.predict(x_new).reshape(x0.shape)
    
    
        from matplotlib.colors import ListedColormap
        # 自定义colormap
        custom_cmap=ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])
        plt.contourf(x0,x1,y_predict,linewidth=5,cmap=custom_cmap)
    
    flg=plt.figure()
    #flg.subplots_adjust(left=0.15,bottom=0.1,top=0.9,right=0.95,hspace=0.35,wspace=0.25)
    plt.subplot(2, 4, 1), plt.title('gamma=0.1,C=1')
    plot_decision_boundary(svc1,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 2), plt.title('gamma=1,C=1')
    plot_decision_boundary(svc2,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 3), plt.title('gamma=10,C=1')
    plot_decision_boundary(svc3,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 4), plt.title('gamma=100,C=1')
    plot_decision_boundary(svc4,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 5), plt.title('gamma=0.1,C=5')
    plot_decision_boundary(svc5,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4,6), plt.title('gamma=1,C=5')
    plot_decision_boundary(svc6,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 7), plt.title('gamma=10,C=5')
    plot_decision_boundary(svc7,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.subplot(2, 4, 8), plt.title('gamma=100,C=5')
    plot_decision_boundary(svc8,axis=[-1.5,2.5,-1.0,1.5])
    plt.scatter(x[y==0,0],x[y==0,1])
    plt.scatter(x[y==1,0],x[y==1,1])
    plt.show()

    gamma越大,高斯图形越窄,模型复杂度越高,容易导致过拟合 
    gamma越小,高斯图形越宽,模型复杂度越低,容易导致欠拟合



    展开全文
  • 支持向量机采用核函数来实现从原输入空间到一个高维空间的非线性映射,而由于普通核函数各有其利弊,为了得到学习能力和泛化性能都很强的核函数,研究了2种支持向量机核函数:全局核函数(线性核函数)和局部核函数(RBF...
  • MATLAB核函数算法

    热门讨论 2010-08-27 09:57:12
    介绍几种常用核函数MATLAB的算法,附说明
  • SVM非线性核函数程序

    2018-01-16 16:18:14
    SVM非线性核函数程序
  • 核函数详解

    万次阅读 多人点赞 2018-04-17 21:11:28
    这篇博文开始的例子就很好地揭示了核函数的简单原理,写得很好!原地址:https://blog.csdn.net/zkq_1986/article/details/524482381 核函数K(kernel function)定义核函数K(kernel function)就是指K(x, y) = &...

    这篇博文开始的例子就很好地揭示了核函数的简单原理,写得很好!

    原地址:https://blog.csdn.net/zkq_1986/article/details/52448238

    1 核函数K(kernel function)定义

    核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的映射(通常,m>>n)。<x, y>是x和y的内积(inner product)(也称点积(dot product))。

    举个小小栗子。
    令 x = (x1, x2, x3, x4); y = (y1, y2, y3, y4);
    令 f(x) = (x1x1, x1x2, x1x3, x1x4, x2x1, x2x2, x2x3, x2x4, x3x1, x3x2, x3x3, x3x4, x4x1, x4x2, x4x3, x4x4); f(y)亦然;
    令核函数 K(x, y) = (<x, y>)^2.
    接下来,让我们带几个简单的数字进去看看是个什么效果:x = (1, 2, 3, 4); y = (5, 6, 7, 8). 那么:
    f(x) = ( 1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16) ;
    f(y) = (25, 30, 35, 40, 30, 36, 42, 48, 35, 42, 49, 56, 40, 48, 56, 64) ;
    <f(x), f(y)> = 25+60+105+160+60+144+252+384+105+252+441+672+160+384+672+1024
    = 4900. 
    如果我们用核函数呢?
    K(x, y) = (5+12+21+32)^2 = 70^2 = 4900.
    就是这样!

    所以现在你看出来了吧,kernel其实就是帮我们省去在高维空间里进行繁琐计算的“简便运算法”。甚至,它能解决无限维空间无法计算的问题!因为有时f(·)会把n维空间映射到无限维空间去。

    那么kernel在SVM究竟扮演着什么角色?
    初学SVM时常常可能对kernel有一个误读,那就是误以为是kernel使得低维空间的点投射到高位空间后实现了线性可分。其实不然。这是把kernel和feature space transformation混为了一谈。(这个错误其实很蠢,只要你把SVM从头到尾认真推导一遍就不会犯我这个错。)

    这里写图片描述

    这里写图片描述 
    我们成功地找到了那个分界线,这就是最直观的kernel啦! 
    可能不太严谨,但是kernel大概就是这个意思,详细的数学定义楼上说的很好,就不赘述了。 
    引用一句这门课的教授的话: 
    “你在你的一生中可能会经历很多变故,可能会变成完全不同的另一个人,但是这个世界上只有一个你,我要怎样才能把不同的“你”分开呢?最直观的方法就是增加“时间”这个维度,虽然这个地球上只有一个你,这个你是不可分割的,但是“昨天在中国的你”和“今天在美国的你”在时间+空间这个维度却是可以被分割的。”

    We know that everything in the world can be decomposed into the combination of the basic elements. For example, water is the combination of hydrogen and oxygen. Similarly, in mathematics, basis is used to represent various things in a simple and unified way.

    In RnRn space, we can use n independent vectors to represent any vector by linear combination. The n independent vectors can be viewed as a set of basis. There are infinite basis sets in RnRn space. Among them, basis vectors that are orthogonal to each other are of special interests. For example, {ei}ni=1{ei}i=1n is a special basis set with mutually orthogonal basis vectors in the same length, where eiei is a vector that has all zero entries except the iith entry which equals 1. 
    The inner product operator measures the similarity between vectors. For two vectors x and y , the inner product is the projection of one vector to the other.

    这里写图片描述

    3. Kernel Function

    A function f(x)f(x) can be viewed as an infinite vector, then for a function with two independent variables K(x,y)K(x,y), we can view it as an infinite matrix. Among them, if K(x,y)=K(y,x)K(x,y)=K(y,x) and

    f(x)K(x,y)f(y)dxdy0∫∫f(x)K(x,y)f(y)dxdy≥0
    for any function  ff , then  K(x,y)K(x,y)  is symmetric and positive definite, in which case  K(x,y)K(x,y)  is a kernel function.

    这里写图片描述 
    这里写图片描述 
    Here are some commonly used kernels:

    • Polynomial kernel K(x,y)=(γxTy+C)dK(x,y)=(γxTy+C)d
    • Gaussian radial basis kernel K(x,y)=exp(γxy2)K(x,y)=exp⁡(−γ‖x−y‖2)
    • Sigmoid kernel K(x,y)=tanh(γxTy+C)K(x,y)=tanh⁡(γxTy+C)

    3.1 补充知识

    The hyperbolic functions are: 

    Hyperbolic sine: 
    sinhx=exex2=e2x12ex=1e2x2ex.sinh⁡x=ex−e−x2=e2x−12ex=1−e−2x2e−x.

    Hyperbolic cosine: 
    coshx=ex+ex2=e2x+12ex=1+e2x2ex.cosh⁡x=ex+e−x2=e2x+12ex=1+e−2x2e−x.

    Hyperbolic tangent: 
    tanhx=sinhxcoshx=exexex+ex=1e2x1+e2x.tanh⁡x=sinh⁡xcosh⁡x=ex−e−xex+e−x=1−e−2x1+e−2x.

    4. Reproducing Kernel Hilbert Space

    Treat {λiψi}i=1{λiψi}i=1∞ as a set of orthogonal basis and construct a Hilbert space HH. Any function or vector in the space can be represented as the linear combination of the basis. Suppose f=i=1fiλiψif=∑i=1∞fiλiψi we can denote ff as an infinite vector in HHf=(f1,f2,...)THf=(f1,f2,...)HT For another function g=(g1,g2,...)THg=(g1,g2,...)HT, we have 

    < f,g > H=i=1figiH=∑i=1∞figi

    这里写图片描述 
    这里写图片描述

    5. A Simple Example

    这里写图片描述

    6 .

    线性核函数 
    这里写图片描述

    这里写图片描述

    这里写图片描述

    二、现有的核函数统计如下:

    1. Linear Kernel

    线性核是最简单的核函数,核函数的数学公式如下:


    如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,很多童鞋借此说“kernel is shit!!!”,这是不对的,这只是线性核函数偶尔会出现等价的形式罢了。

     

    2. Polynomial Kernel

    多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,其具体形式如下:


    这个核函数是比较好用的,就是参数比较多,但是还算稳定。

     

    3. Gaussian Kernel

    这里说一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数,其数学形式如下:


    虽然被广泛使用,但是这个核函数的性能对参数十分敏感,以至于有一大把的文献专门对这种核函数展开研究,同样,高斯核函数也有了很多的变种,如指数核,拉普拉斯核等。

    4. Exponential Kernel

          指数核函数就是高斯核函数的变种,它仅仅是将向量之间的L2距离调整为L1距离,这样改动会对参数的依赖性降低,但是适用范围相对狭窄。其数学形式如下:


    5. Laplacian Kernel

          拉普拉斯核完全等价于指数核,唯一的区别在于前者对参数的敏感性降低,也是一种径向基核函数。


    6. ANOVA Kernel

          ANOVA 核也属于径向基核函数一族,其适用于多维回归问题,数学形式如下:


    7. Sigmoid Kernel

    Sigmoid 核来源于神经网络,现在已经大量应用于深度学习,是当今机器学习的宠儿,它是S型的,所以被用作于“激活函数”。关于这个函数的性质可以说好几篇文献,大家可以随便找一篇深度学习的文章看看。


    8. Rational Quadratic Kernel

          二次有理核完完全全是作为高斯核的替代品出现,如果你觉得高斯核函数很耗时,那么不妨尝试一下这个核函数,顺便说一下,这个核函数作用域虽广,但是对参数十分敏感,慎用!!!!


    9. Multiquadric Kernel

          多元二次核可以替代二次有理核,它是一种非正定核函数。


    10. Inverse Multiquadric Kernel

          顾名思义,逆多元二次核来源于多元二次核,这个核函数我没有用过,但是据说这个基于这个核函数的算法,不会遇到核相关矩阵奇异的情况。


    11. Circular Kernel

          这个核函数没有用过,其数学形式如下所示:


    12. Spherical Kernel

          这个核函数是上一个的简化版,形式如下所示


    13. Wave Kernel

          这个核函数没有用过,其适用于语音处理场景。


    14. Triangular  Kernel

    三角核函数感觉就是多元二次核的特例,数学公式如下:


    15. Log Kernel

          对数核一般在图像分割上经常被使用,数学形式如下:


    16. Spline Kernel


    17. Bessel Kernel


    18. Cauchy Kernel

          柯西核来源于神奇的柯西分布,与柯西分布相似,函数曲线上有一个长长的尾巴,说明这个核函数的定义域很广泛,言外之意,其可应用于原始维度很高的数据上。


    19. Chi-Square Kernel

          卡方核,这是我最近在使用的核函数,让我欲哭无泪,在多个数据集上都没有用,竟然比原始算法还要差劲,不知道为什么文献作者首推这个核函数,其来源于卡方分布,数学形式如下:


    它存在着如下变种:


    其实就是上式减去一项得到的产物,这个核函数基于的特征不能够带有赋值,否则性能会急剧下降,如果特征有负数,那么就用下面这个形式:


    20. Histogram Intersection Kernel

          直方图交叉核在图像分类里面经常用到,比如说人脸识别,适用于图像的直方图特征,例如extended LBP特征其数学形式如下,形式非常的简单


    21. Generalized Histogram Intersection

         顾名思义,广义直方图交叉核就是上述核函数的拓展,形式如下:


    22. Generalized T-Student Kernel

          TS核属于mercer核,其数学形式如下,这个核也是经常被使用的


    23. Bayesian Kernel

    贝叶斯核函数还没有用到过。




    参考文献: 
    [1] 机器学习里的kernel是指什么? - 算法 - 知乎.  http://www.zhihu.com/question/30371867 [2016-9-6] 
    [2]  http://songcy.net/posts/story-of-basis-and-kernel-part-1/ 
    [3]  http://songcy.net/posts/story-of-basis-and-kernel-part-2/
    展开全文
  • 代码包括了SVM的多核核函数的分类实现和可视化展示。
  • 代码把支持向量机中常用的核函数单独拿了出来,对于需要用核函数处理数据的同学大有帮助。
  • 经过多个核函数映射后的高维空间是由多个特征空间组合而成的组合空间,而显然组合空间可以组合各个子空间不同的特征映射能力,能够将异构数据中的不同特征分量分别通过最合适的单个核函数进行映射,最终使得数据在新...
  • Python3:《机器学习实战》之支持向量机(4)核函数及其实现 转载请注明作者和出处:http://blog.csdn.net/u011475210 代码地址:https://github.com/WordZzzz/ML/tree/master/Ch06 操作系统:WINDOWS 10 软件版本:...
  • python实现径向基核函数

    千次阅读 2018-10-20 22:39:35
    高斯核函数,主要的作用是衡量两个对象的相似度,当两个对象越接近,即a与b的距离趋近于0,则高斯核函数的值趋近于1,反之则趋近于0,换言之: 两个对象越相似,高斯核函数值就越大 作用: 用于分类时,衡量各个...
  • 在一个二维空间中,具有特征空间X和特征空间Y,当其中一个点(x, y)在这个二维平面中,如果想把它映射高维空间中,那么就需要用到核函数。 关于核函数的定义是:设XXX是输入空间,YYY是特征空间。如果存在一个从XXX...
  • SVM支持向量机-核函数python实现(7)

    万次阅读 多人点赞 2018-04-19 23:52:12
    数据可视化上篇文章介绍了线性不可分和线性可分两种情况,以及五种核函数,线性核函数(linear),多项式核函数(poly),高斯核函数(rbf),拉普拉斯核函数(laplace)和Sigmoid核函数,基于《机器学习实战》的...
  • 首先,线性规划,比较简单,对误差方程 Ex = (y-mx-c)^2 分别求偏导,再令偏导等于0 一步一步的求出m和c。...python代码表示就是: for i in np.arange(1000000):  m = ((y - c)*x).sum()/(x*x).sum()
  • 高斯核函数

    千次阅读 2018-06-27 15:28:55
    高斯函数:a表示得到曲线的高度,b是指曲线在x轴的中心,c指width(与半峰全宽有关),图形如下:特点: 将二次函数和指数函数结合,指数是一个二次函数。半峰全宽(函数峰值一半处相距的宽度):其中半宽长度:积分不...
  • 本文对高斯过程进行公式推导、原理阐述、可视化以及代码实现,介绍了以高斯过程为基础的高斯过程回归 Gaussian Process Regression 基本原理、超参优化、高维输入等问题。 一元高斯分布公式 其概率密度公式如下: ...
  • 在多幅图片中,所有图片都有着固定不变的背景,挑选出其中一幅图片,可以使用该程序挑选出图片中相对于背景的运动目标,实现运动目标检测,
  • svm核函数

    千次阅读 2018-07-14 23:00:04
    svm的分类 根据数据可分的情况,svm分为3种: - 线性可分支持向量机(没有噪音和异常数据,分隔超平面...上面三种svm由简到繁,其实所有的svm都可以可以统一写为带核函数的推理形式。前两种情况下可以选择不用核...
  • 使用python手动实现了SVM支持向量机,包括其中二次规划的求解(调用cvxopt包),实现了软间隔及技术,以及对数据集及分类效果的可视化!建议配合我的SVM PPT一起学习SVM 不是直接调用sklearn的SVM!!
  • Python实现机器学习算法

    千次阅读 2020-12-02 14:23:47
    一、线性回归1、代价函数其中:下面就是要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近共有m条数据,其中代表我们要拟合出来的方程到真实值距离的平方,平方的原因是因为可能有负值,正负可能会...
  • 使用LIBSVM训练时,要用到svm-train,svm-train默认是使用C-SVC和RBF核函数,使用方法如下: svm-train [可选参数] 训练文件 [模型文件] 可选参数: -s svm_type : set type of SVM (default 0)//-s用于设置SVM的类型...
  • SVM核函数概述

    万次阅读 多人点赞 2019-03-27 08:55:53
    特征空间的隐式映射:核函数     咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 709,402
精华内容 283,760
关键字:

核函数代码