Python机器学习:SVM007高斯核函数

在这里插入图片描述
径向基/RBF/高斯核 都是这种形式
在这里插入图片描述
为了感性理解,模拟一下。。。过程
在这里插入图片描述
在这里插入图片描述
高斯核本质
l1 l2 两个地标
在这里插入图片描述

在这里插入图片描述
显然这样就线性可分了
在这里插入图片描述
我们只去了地标点l1 l2
高斯核去了len(x)个地标点
在这里插入图片描述

本质是将原本数据,映射到一个无穷维空间(样本理论上有无穷多个) 计算开销特别大~~~~~~ 有些应用适合 初始样本数据样本维度高 数量却不多 m < n 通常 就是自然语言处理领域 构建高维特征空间,然而样本的数量不多。

遗留问题
γ作用是什么?
通过代码直观理解

#直观理解高斯核函数
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])
x > -2
array([False, False, False,  True,  True,  True,  True,  True,  True])
x < 2
array([ True,  True,  True,  True,  True,  True, False, False, False])
plt.scatter(x[y == 0],[0] * len(x[y == 0]))
plt.scatter(x[y == 1],[0] * len(x[y == 1]))

在这里插入图片描述

使用高斯核函数将数据映射到二维

#使用高斯核函数将数据映射到二维
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)
print(X_new)
[[1.23409804e-04 1.38879439e-11]
 [1.83156389e-02 1.12535175e-07]
 [3.67879441e-01 1.23409804e-04]
 [1.00000000e+00 1.83156389e-02]
 [3.67879441e-01 3.67879441e-01]
 [1.83156389e-02 1.00000000e+00]
 [1.23409804e-04 3.67879441e-01]
 [1.12535175e-07 1.83156389e-02]
 [1.38879439e-11 1.23409804e-04]]
plt.scatter(X_new[y == 0,0],X_new[y == 0,1])
plt.scatter(X_new[y == 1,0],X_new[y == 1,1])

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值