高斯过程分类器(GPC)是一种基于概率的机器学习方法,它通过核函数来描述数据点之间的相似性。在本研究中,探讨了在二维鸢尾花数据集上,各向同性和各向异性径向基函数(RBF)核的性能。各向异性RBF核通过为两个特征维度分配不同的长度尺度,获得了略高的对数边际似然值。
首先导入了必要的库,包括用于数据可视化的matplotlib.pyplot,用于数值计算的numpy,以及用于机器学习的sklearn库。接着,加载了鸢尾花数据集,并仅选取了前两个特征进行分析。为了评估模型的性能,定义了一个小的步长h来创建一个网格,用于绘制预测概率的图形。
在代码实现中,首先定义了一个各向同性RBF核,并将其用于GPC模型的训练。然后,定义了一个各向异性RBF核,同样用于GPC模型的训练。通过比较两种核函数的对数边际似然值,可以评估它们在数据集上的表现。
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets
from sklearn.gaussian_process import GaussianProcessClassifier
from sklearn.gaussian_process.kernels import RBF
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :2] # 仅选取前两个特征
y = np.array(iris.target, dtype=int)
h = 0.02 # 网格的步长
kernel = 1.0 * RBF([1.0])
gpc_rbf_isotropic = GaussianProcessClassifier(kernel=kernel)
gpc_rbf_isotropic.fit(X, y)
kernel = 1.0 * RBF([1.0, 1.0])
gpc_rbf_anisotropic = GaussianProcessClassifier(kernel=kernel)
gpc_rbf_anisotropic.fit(X, y)
# 创建用于绘图的网格
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
titles = ["各向同性RBF", "各向异性RBF"]
plt.figure(figsize=(10, 5))
for i, clf in enumerate((gpc_rbf_isotropic, gpc_rbf_anisotropic)):
# 绘制预测概率
Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape((xx.shape[0], xx.shape[1], 3))
plt.subplot(1, 2, i + 1)
plt.imshow(Z, extent=(x_min, x_max, y_min, y_max), origin="lower")
# 绘制训练点
plt.scatter(X[:, 0], X[:, 1], c=np.array(["r", "g", "b"])[y], edgecolors=(0, 0, 0))
plt.xlabel("萼片长度")
plt.ylabel("萼片宽度")
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.title("%s, LML: %.3f" % (titles[i], clf.log_marginal_likelihood(clf.kernel_.theta)))
plt.tight_layout()
plt.show()
通过上述代码,可以看到GPC模型在鸢尾花数据集上的表现。首先使用了一个各向同性的RBF核,然后使用了一个各向异性的RBF核。通过比较两者的对数边际似然值,可以得出结论,各向异性RBF核在本数据集上表现更好。
在实际应用中,选择合适的核函数对于GPC模型的性能至关重要。各向异性核函数能够更好地捕捉数据中的结构,因为它允许模型为不同的特征维度分配不同的重要性。这种灵活性使得各向异性核函数在处理具有不同特征尺度的数据集时更为有效。
总的来说,本研究展示了高斯过程分类器在鸢尾花数据集上的应用,并比较了各向同性和各向异性RBF核的性能。结果表明,各向异性RBF核通过为不同的特征维度分配不同的长度尺度,能够获得更高的对数边际似然值,从而在本数据集上表现更好。