当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn GaussianProcessClassifier用法及代码示例


本文简要介绍python语言中 sklearn.gaussian_process.GaussianProcessClassifier 的用法。

用法:

class sklearn.gaussian_process.GaussianProcessClassifier(kernel=None, *, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, max_iter_predict=100, warm_start=False, copy_X_train=True, random_state=None, multi_class='one_vs_rest', n_jobs=None)

基于拉普拉斯近似的高斯过程分类(GPC)。

该实现基于 Rasmussen 和 Williams 的机器学习高斯过程 (GPML) 的算法 3.1、3.2 和 5.1。

在内部,拉普拉斯近似用于通过高斯近似非高斯后验。

目前,实施仅限于使用物流链接函数。对于多类分类,安装了多个二元one-versus剩余分类器。请注意,此类并未实现真正的多类拉普拉斯近似。

在用户指南中阅读更多信息。

参数

kernel内核实例,默认=无

指定 GP 协方差函数的内核。如果 None 被传递,内核“1.0 * RBF(1.0)”被用作默认值。请注意,内核的超参数在拟合期间进行了优化。

optimizer‘fmin_l_bfgs_b’ 或可调用,默认='fmin_l_bfgs_b'

可以是用于优化内核参数的内部支持的优化器之一,由字符串指定,也可以是作为可调用传递的外部定义的优化器。如果传递了可调用对象,则它必须具有签名:

def optimizer(obj_func, initial_theta, bounds):
    # * 'obj_func' is the objective function to be maximized, which
    #   takes the hyperparameters theta as parameter and an
    #   optional flag eval_gradient, which determines if the
    #   gradient is returned additionally to the function value
    # * 'initial_theta': the initial value for theta, which can be
    #   used by local optimizers
    # * 'bounds': the bounds on the values of theta
    ....
    # Returned are the best found hyperparameters theta and
    # the corresponding value of the target function.
    return theta_opt, func_min

默认情况下,使用来自scipy.optimize.minimize 的“L-BFGS-B”算法。如果 None 被传递,内核的参数保持固定。可用的内部优化器有:

'fmin_l_bfgs_b'
n_restarts_optimizer整数,默认=0

优化器重新启动的次数,用于查找最大化log-marginal 可能性的内核参数。优化器的第一次运行是从内核的初始参数执行的,其余的(如果有的话)来自 thetas 从允许的 theta-values 的空间中随机采样 log-uniform。如果大于 0,则所有边界都必须是有限的。请注意,n_restarts_optimizer=0 意味着执行了一次运行。

max_iter_predict整数,默认=100

牛顿法中用于在预测期间逼近后验的最大迭代次数。较小的值将以更差的结果为代价减少计算时间。

warm_start布尔,默认=假

如果启用warm-starts,则在后验模式的拉普拉斯近似上的最后一次牛顿迭代的解将用作_posterior_mode()的下一次调用的初始化。当 _posterior_mode 在与超参数优化类似的问题上被多次调用时,这可以加快收敛速度。请参阅词汇表。

copy_X_train布尔,默认=真

如果为 True,则将训练数据的持久副本存储在对象中。否则,只存储对训练数据的引用,如果数据被外部修改,这可能会导致预测发生变化。

random_stateint、RandomState 实例或无,默认=无

确定用于初始化中心的随机数生成。传递 int 以获得跨多个函数调用的可重现结果。请参阅词汇表。

multi_class{‘one_vs_rest’, ‘one_vs_one’},默认='one_vs_rest'

指定如何处理多类分类问题。支持‘one_vs_rest’ 和‘one_vs_one’。在‘one_vs_rest’中,为每个类安装一个二元高斯过程分类器,经过训练将此类与其他类分开。在‘one_vs_one’中,为每一对类安装一个二元高斯过程分类器,该分类器经过训练以分离这两个类。这些二元预测器的预测被组合成多类预测。请注意,‘one_vs_one’ 不支持预测概率估计。

n_jobs整数,默认=无

用于计算的作业数量:并行计算指定的多类问题。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

属性

base_estimator_Estimator 实例

使用观察到的数据定义似然函数的估计器实例。

kernel_内核实例

返回基本估计器的内核。

log_marginal_likelihood_value_浮点数

self.kernel_.theta的log-marginal-likelihood

classes_形状类似数组 (n_classes,)

唯一的类标签。

n_classes_int

训练数据中的类数

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

例子

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import RBF
>>> X, y = load_iris(return_X_y=True)
>>> kernel = 1.0 * RBF(1.0)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9866...
>>> gpc.predict_proba(X[:2,:])
array([[0.83548752, 0.03228706, 0.13222543],
       [0.79064206, 0.06525643, 0.14410151]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.gaussian_process.GaussianProcessClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。