Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法

       

(1)高斯核模型

         Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法

                其中Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法为样本。可以看出,核模型的均值Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法是以Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法的元素Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法进行计算的。

Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法

(2)随机梯度下降法

Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法

(3)python 代码实现

import numpy as np
import matplotlib.pyplot as plt
import math
n=50
N=1000
x=np.linspace(-3,3,n)
X=np.linspace(-3,3,N)
def fun0(x):
    pix=math.pi*x
    return np.sin(pix)/pix+0.1*pix+0.1*np.random.rand()

y=np.array(list(map(fun0,x)))
hh=2*pow(0.3,2)
t0=np.random.randn(int(n),)
alpha=0.1

xs=x[0:int(n)]
def K(xi):
    K=[]
    for a in range(len(xs)):
       K.append(math.exp(-(xi-xs[a])**2/hh))
    return np.array(K)


for o in range(1000):
    i=math.ceil(np.random.rand()*(n-1))
    k=K(x[i])
    t=t0-alpha*k*((np.dot(k,t0.reshape((-1,1))))-y[i])

    if np.linalg.norm(t-t0)<0.000001:
        break
    t0 = t

def fun(Xi):
    return K(Xi).dot(t0.reshape((-1,1)))


Y=np.array(list(map(fun,X))).reshape((-1,))
error=np.array(list(map(fun,x))).reshape((-1,))-y
plt.plot(x,y,'g.')        #绘制样本点
plt.plot(X,Y,'r-')        #绘制拟合曲线
plt.plot(x,error,'b-')    #绘制样本点拟合误差

plt.show()

结果为:

Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法

 

附录:Matlab实现

Python实现-----使用随机梯度算法对高斯核模型进行最小二乘学习法