码迷,mamicode.com
首页 > 其他好文 > 详细

高斯核函数的代码体现

时间:2021-02-01 12:54:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:lang   new   atp   img   range   enter   enumerate   ret   使用   


直观理解高斯核函数

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-4, 5, 1) 
x
# array([-4, -3, -2, -1,  0,  1,  2,  3,  4])
 
y = np.array((x >= -2) & (x <= 2), dtype=‘int‘)
y
# array([0, 0, 1, 1, 1, 1, 1, 0, 0])
 
plt.scatter(x[y==0], [0]*len(x[y==0]))
plt.scatter(x[y==1], [0]*len(x[y==1]))
plt.show()
技术图片

使用高斯核函数,让数据可分

def gaussian(x, l):
    gamma = 1.0
    return np.exp(-gamma * (x-l)**2)
 
 
l1, l2 = -1, 1

X_new = np.empty((len(x), 2))
for i, data in enumerate(x):
    X_new[i, 0] = gaussian(data, l1)
    X_new[i, 1] = gaussian(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()
技术图片

这样数据就变成线性可分了

技术图片

高斯核函数的代码体现

标签:lang   new   atp   img   range   enter   enumerate   ret   使用   

原文地址:https://www.cnblogs.com/devwalks/p/14353189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!