手写一个二维高斯核函数
时间: 2024-11-02 13:08:07 浏览: 5
手写一个二维高斯核函数通常用于机器学习中的核方法,如支持向量机(SVM)。高斯核也称为径向基函数(RBF),其数学形式是一个指数衰减的函数,表示点之间的距离。以下是二维高斯核函数的一个简单实现:
```python
import math
def gaussian_kernel(x1, x2, sigma):
"""
二维高斯核函数计算两个输入向量x1和x2的距离,并应用高斯分布的权重衰减。
参数:
x1 (list): 第一个输入向量 [x1_1, x1_2]
x2 (list): 第二个输入向量 [x2_1, x2_2]
sigma (float): 核函数宽度参数
返回:
float: 高斯核函数的结果
"""
# 计算欧几里得距离
diff = [x1[i] - x2[i] for i in range(len(x1))]
distance = math.sqrt(sum([d**2 for d in diff]))
# 应用高斯分布权重
return math.exp(-distance ** 2 / (2 * sigma ** 2))
# 示例用法
x1 = [1, 2]
x2 = [4, 5]
sigma = 1.0
kernel_value = gaussian_kernel(x1, x2, sigma)
print(f"二维高斯核值: {kernel_value}")
```
在这个例子中,`sigma`决定了核函数的平滑程度,值越大,权重衰减越慢,函数形状越扁平。
阅读全文