高斯核函数的python代码
时间: 2023-12-15 15:30:45 浏览: 113
高斯核函数是一种常用的核函数,它可以将数据映射到高维空间中,从而更好地进行分类或回归。以下是高斯核函数的Python代码:
```python
import numpy as np
from scipy.spatial.distance import pdist, squareform
def gaussian_kernel(X, sigma=1):
"""
高斯核函数
:param X: 输入数据,形状为(n_samples, n_features)
:param sigma: 高斯核函数的参数
:return: 高斯核矩阵,形状为(n_samples, n_samples)
"""
pairwise_dists = squareform(pdist(X, 'euclidean'))
K = np.exp(-pairwise_dists ** 2 / (2 * sigma ** 2))
return K
```
其中,`X`是输入数据,`sigma`是高斯核函数的参数。`pairwise_dists`是输入数据两两之间的欧几里得距离,`K`是高斯核矩阵,它的每个元素都是两个样本之间的相似度。
相关问题
高斯核函数python代码
高斯核函数也称为径向基函数(RBF)核函数,是常用的核函数之一,它在机器学习中被广泛应用。以下是实现高斯核函数的 Python 代码:
```python
import numpy as np
def gaussian_kernel(x1, x2, sigma):
"""
Computes the Gaussian kernel between two vectors x1 and x2.
Parameters:
x1 -- array_like, shape (n, )
x2 -- array_like, shape (n, )
sigma -- float, parameter for the Gaussian kernel
Returns:
sim -- float, similarity score
"""
# Convert to numpy arrays if necessary
x1, x2 = np.array(x1), np.array(x2)
# Compute the squared Euclidean distance between the two vectors
dist_squared = np.sum((x1 - x2) ** 2)
# Compute the Gaussian kernel
sim = np.exp(-dist_squared / (2 * sigma ** 2))
return sim
```
其中,x1 和 x2 是两个向量,sigma 是高斯核函数的参数。函数返回两个向量之间的相似度得分。
svm高斯核函数python代码
以下是使用 Scikit-learn 库实现 SVM 高斯核函数的 Python 代码:
```python
from sklearn import svm
import numpy as np
# 生成一些随机数据
X = np.random.randn(100, 2)
y = np.logical_xor(X[:, 0] > 0, X[:, 1] > 0)
# 创建 SVM 模型,使用高斯核函数
clf = svm.SVC(kernel='rbf')
# 训练模型
clf.fit(X, y)
# 预测新数据的标签
new_data = np.array([[1, 1], [-1, -1]])
print(clf.predict(new_data))
```
在这个例子中,我们生成了一些随机数据,并创建了一个 SVM 模型,使用高斯核函数。然后,我们训练模型并预测新数据的标签。
阅读全文