sklearn 笔记:高斯过程
class sklearn.gaussian_process.GaussianProcessRegressor(kernel=None, *, alpha=1e-10, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, normalize_y=False, copy_X_train=True, random_state=None)
理论部分机器学习笔记:高斯过程_UQI-LIUWJ的博客-CSDN博客
1 参数说明
kernel |
高斯过程的核函数(无限维高斯分布的协方差矩阵) |
alpha |
在拟合过程中增加到核矩阵对角线的值。 通过确保计算值形成正定矩阵,这可以防止拟合过程中潜在的数值问题。 它也可以解释为附加高斯测量噪声对训练观测值的方差。 类似于这边的1e-8 |
n_restarts_optimizer int, default=0 |
优化器重新启动的次数,用于查找核函数参数,使log边缘似然最大化。 优化器的第一次运行是从核函数的初始参数执行的,其余轮次的参数(如果有的话)是从允许的值的空间中随机采样的。 如果n_restarts_optimizer 大于0,所有的边界都必须是有限的。 注意,n_restarts_optimizer == 0意味着执行一次运行。 |
normalize_y bool, default=False |
是否通过去除均值和缩放到单位方差来标准化目标值y 这在使用零均值、单位方差先验的情况下是推荐的。 注意,逆规则化范化需要在高斯过程预测展现之前完成。 |
copy_X_train bool, default=True |
如果为True,则在对象中存储训练数据的持久副本。 否则,只存储对训练数据的引用,如果外部修改了数据,可能会导致预测发生变化。 |
random_state | 确定用于初始化中心的随机数生成。 |
2 高斯过程相应方法
fit(X, y) | 拟合高斯过程回归模型。 |
get_params([deep]) | 或者这个模型的参数 |
log_marginal_likelihood([theta, …]) | 返回训练数据theta的log边缘似然值。 |
predict(X[, return_std, return_cov]) | 使用高斯过程模型进行预测 |
sample_y(X[, n_samples, random_state]) | 从高斯过程中抽取样本并在X处评估 |
score(X, y[, sample_weight]) | 返回预测的决定系数 |
set_params(**params) | 人为设置模型的参数 |
3 高斯过程举例
这里说一下RBF核函数的时候的两个参数(但是不确定,欢迎评论区赐教~)
length_scale是RBF式子里l的数值
length_scale_bounds是进行调参的时候,l的取值范围
3.1 构建数据集
# Make an interesting fake function
N = 100
x_min = -10
x_max = +10
# Avoid using linspace so that our data points are NOT equidistant
X = np.sort(np.random.uniform(size=(N))) * (x_max - x_min) + x_min
X = X.reshape(-1, 1) #【100,1】eta = np.random.normal(loc=0.0, scale=0.5, size=(N))
#【100,】y_clean = np.sin(X * 2.5) + np.sin(X * 1.0) + np.multiply(X, X) * 0.05 + 1
#【100,1】
y_clean = y_clean.ravel()
#【100,】y = y_clean + eta
#[100,]
3.2 构建高斯过程模型,将数据喂入
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBFkernel = RBF(length_scale=1, length_scale_bounds=(1e-2, 1e3))gpr = GaussianProcessRegressor( kernel,alpha=0.1,n_restarts_optimizer=5,normalize_y=True)
gpr.fit(X,y )print("LML:", gpr.log_marginal_likelihood())
print(gpr.get_params())
'''
LML: -56.5258341966552
{'alpha': 0.1, 'copy_X_train': True, 'kernel__length_scale': 1, 'kernel__length_scale_bounds': (0.01, 1000.0), 'kernel': RBF(length_scale=1), 'n_restarts_optimizer': 5, 'normalize_y': True, 'optimizer': 'fmin_l_bfgs_b', 'random_state': None}
'''
3.3. 测试其他数据情况
x = np.linspace(x_min - 2.0, x_max + 7.5, N * 2).reshape(-1, 1)
#[200,1]y_pred, y_pred_std = gpr.predict(x, return_std=True)
#[200,],[200,]import matplotlib.pyplot as plt
plt.figure(figsize=(30, 15))
plt.plot(x, y_pred, label="GP mean")
plt.plot(X, y_clean, '--', label="Original y")
plt.plot(X, y, label="Noisy y")
plt.scatter(X, np.zeros_like(X), marker='x')plt.fill_between(x.ravel(),y_pred - y_pred_std * 1.9600,y_pred + y_pred_std * 1.9600,label="95% confidence interval",interpolate=True,facecolor='blue',alpha=0.5)
plt.legend()
可以看到,有先验数据的地方,置信区间范围是很小的
sklearn 笔记:高斯过程相关推荐
- sklearn 笔记 TSNE
0 基本介绍 机器学习笔记:t-SNE_UQI-LIUWJ的博客-CSDN博客 将高维数据降维,使得高维数据各点的联合概率,和对应的低维数据各点的联合概率之间的 KL散度尽量小 对T-SNE使用不同的 ...
- sklearn 笔记:make_blobs 生成聚类数据
from sklearn.datasets import make_blobs 1 基本用法 data, label = make_blobs(n_features=2, n_samples=100, ...
- sklearn 笔记整理:sklearn.mertics
理论部分:RMSE.MAE等误差指标整理_UQI-LIUWJ的博客-CSDN博客 1 sklearn.metrics.mean_squared_error sklearn.metrics.mean_s ...
- sklearn 笔记:数据归一化(StandardScaler)
1 StandardScaler原理 去均值和方差归一化.且是针对每一个特征维度来做的,而不是针对样本. ,其中μ为所有样本数据的均值,σ为所有样本数据的标准差. 2 用sklearn 实现数据归一化 ...
- sklearn笔记29 线性回归 天猫双十一销量预测
完整代码 sklearn代码21 2-2020天猫双十一销量 天猫双十一历年销量 数据是曲线的,不是线性的 # 认为天猫销量与年份之间存在函数关系,一元二次,一元三次 导包 import numpy ...
- Sklearn笔记--逻辑回归调参指南
1 逻辑回归概述 pθ(y=1∣x)=δ(θ⊤x)=11+e−θ⊤xpθ(y=0∣x)=e−θ⊤x1+e−θ⊤x\begin{array}{c} p_{\theta}(y=1 | x)=\delta\ ...
- 《随机过程》学习笔记--高斯过程(1)
高斯过程(1)(Gauss Processes) n-Dimensional Joint Gauss Distribution n随机变量X(t)X(t),对∀n,∀t1,t2,⋯,tn \foral ...
- sklearn笔记26 pandas批量处理成绩表
完整代码 sklearn代码18 python自动化处理数据 导包 import numpy as npimport pandas as pdfrom pandas import Series,Dat ...
- sklearn笔记24 算法回顾
算法使用 ·创建 ·参数调节 cross_val_score:求单一参数最合适的值(KNN) GridSearchCV网格搜索:多参数组合最优的值. 标准:准确率,精确率,召回率,F1 数据清洗 操作 ...
最新文章
- python三层架构
- 低锁单例模式D语言实现
- 通过因特网连接Beaglebone Black
- unity2018关联不到vs_原尚股份VS.长久物流,整车物流和零部件物流,谁才是好生意?...
- java yeild_Java 中 Thread.yield() 方法详解
- 【WCF】WCF服务库和WCF服务应用程序的区别
- 禅道外部消息提示_Spring Boot中文参考指南(2.1.6)34、消息传递
- 高效管理CrossOver容器里的程序
- 未来3-4周可能出现大规模病毒或安全***事件
- PowerBuilder 开发的游戏(建房子)
- Pytorch实战__反向攻击(Adversarial Attack)
- 关系型、非关系型、实时、非实时数据库特点归纳
- 基于ssm+jsp的大学生体能训练营管理系统毕业设计源码211633
- STC8H8K64U——定时器T0(LED灯闪烁)
- MATLAB实现利用三个不共线的点绘制圆(包括圆心和半径的求解)
- 2021年危险化学品经营单位安全管理人员考试试卷及危险化学品经营单位安全管理人员实操考试视频
- QMUI-Android的一些尝试(圆形进度条、Loading、圆形图片、圆形按钮、椭圆图片)
- mysql新建用户、授予外网Ip访问权限
- ‘tensorflow.python.training.experimental.mixed_precision‘ has no attribute ‘_register_wrapper_optimi
- CJS, AMD, UMD,ESM 简洁解释
热门文章
- c# 谷歌内核cefsharp的简单使用以及实现 webBrowser.Navigate(..,post data)类似的功能
- t6修改服务器ip,用友t6服务器更换ip地址
- SYMBIAN Carbide C++ sisx真机程序生成过程
- 对于计算机网络体系结构的初步思考(附图解)
- 中国十大免费电影网站排行
- stm32ad测量范围_用STM32的AD测电压,范围是0~3.3V,但是输入电压可能高于3.3,怎么保护STM32?...
- TCGA数据下载教程:使用官方gdc-client软件下载
- springboot神奇桔乡旅游信息系统毕业设计-附源码191750
- 运维老兵对运维中常见技术类问题剖析
- C语言基础知识总结(简单算法套路)