极客前沿

一步步上手高斯过程:从零搭建你的第一个AI模型

2026-07-12 01:33
DEV Machine Learning
查看原文

本文将带你从零开始,安装Python环境并运行第一个高斯过程模型,理解其核心概念。

高斯过程是一种强大的AI方法,可以让你用少量数据做出预测。本文面向完全零基础的读者,带你一步步安装工具并跑通第一个模型。

准备环境:安装Python和必要库

首先,你需要一个Python环境。推荐安装Anaconda(一个包含Python和常用科学计算工具的软件包)。下载地址:https://www.anaconda.com/products/individual,选择对应操作系统的版本。安装时一路默认即可,注意勾选“Add Anaconda to my PATH environment variable”(将Anaconda加入系统路径),否则后续需手动配置。

安装完成后,打开终端(Mac/Linux)或Anaconda Prompt(Windows),输入以下命令安装高斯过程所需的库:

Tutorial Image
  • pip install numpy scipy matplotlib scikit-learn:这些是科学计算和机器学习的基础库。
  • pip install GPy:这是一个专门用于高斯过程的Python库。

等待安装完成,如果遇到网络慢,可以尝试使用国内镜像,例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple GPy

编写第一个高斯过程代码

现在,让我们写一个简单的例子。创建一个新文件,比如gp_demo.py,输入以下代码:

import numpy as np
import GPy

# 生成一些示例数据
X = np.random.rand(10, 1) * 10  # 10个随机输入点
y = np.sin(X) + np.random.randn(10, 1) * 0.1  # 带噪声的正弦函数

# 创建高斯过程模型
kernel = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=1.)  # RBF核,控制平滑度
model = GPy.models.GPRegression(X, y, kernel)

# 训练模型
model.optimize()

# 打印模型参数
print(model)

这段代码做了以下事情:

Tutorial Image
  • 生成数据:创建10个随机点,目标值来自正弦函数并添加噪声。
  • 定义核函数RBF核(径向基函数核)是一种常用的核,用于衡量输入点之间的相似性。这里设置初始参数。
  • 创建并训练模型GPRegression是GPy中的高斯过程回归模型。调用optimize()会自动调整核参数以拟合数据。

运行代码:在终端中执行python gp_demo.py。如果一切正常,你会看到类似下面的输出,显示优化后的核参数和噪声方差:

Name                 : GP regression
Objective            : ...
Number of Parameters : 3
Number of Optimization Steps : ...
...

验证是否成功:可视化预测结果

为了直观看到模型效果,我们可以绘制预测曲线。在代码末尾添加:

import matplotlib.pyplot as plt

# 生成测试点
X_test = np.linspace(0, 10, 100).reshape(-1, 1)
# 预测均值与方差
mean, var = model.predict(X_test)
# 绘图
plt.figure()
plt.plot(X, y, 'kx', mew=2, label='训练数据')
plt.plot(X_test, mean, 'b-', label='预测均值')
plt.fill_between(X_test.flatten(), (mean-2*np.sqrt(var)).flatten(), (mean+2*np.sqrt(var)).flatten(), alpha=0.2, color='b', label='95%置信区间')
plt.legend()
plt.show()

重新运行python gp_demo.py,会弹出一个图形窗口。你会看到蓝色的预测曲线穿过数据点,并且有一个浅蓝色的带状区域(置信区间),表示模型的不确定性。这就是高斯过程的魅力:不仅给出预测,还给出预测的可靠程度。

下一步可以做什么

现在你已经成功运行了第一个高斯过程模型!接下来可以:

  • 尝试不同的核函数,如Matern32Periodic,观察对预测的影响。
  • 使用真实数据集,例如sklearn.datasets中的波士顿房价数据,进行回归预测。
  • 学习如何调整超参数(如lengthscale)来改善模型性能。

记住,实践是最好的学习方式。多修改代码、观察结果,你会逐渐理解高斯过程的原理。

内容来源

DEV Machine Learning

发布时间

2026-07-12 01:33

返回 AI技术