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)基于拉普拉斯近似。
该实现基于[R2da648a61a73-RW2006]_中的算法3.1、3.2和5.1。
在内部,拉普拉斯近似用于将非高斯后验近似为高斯分布。
目前,该实现仅限于使用逻辑链接函数。对于多类分类,拟合了几个二元一对多分类器。请注意,此类并未实现真正的多类拉普拉斯近似。
更多信息请参阅 用户指南 。
Added in version 0.18.
- Parameters:
- kernel核实例, default=None
指定GP的协方差函数的核。如果传递None,则默认使用核“1.0 * RBF(1.0)”。请注意,核的超参数在拟合过程中会进行优化。核也不能是
CompoundKernel
。- optimizer‘fmin_l_bfgs_b’, callable 或 None, default=’fmin_l_bfgs_b’
可以是内部支持的优化器之一,通过字符串指定,或外部定义的优化器作为可调用对象传递。如果传递可调用对象,它必须具有以下签名:
def optimizer(obj_func, initial_theta, bounds): # * 'obj_func' 是要最大化的目标函数,它以超参数theta为参数,并可选标志eval_gradient,该标志确定是否额外返回梯度 # * 'initial_theta': theta的初始值,可以被局部优化器使用 # * 'bounds': theta值的界限 .... # 返回的是找到的最佳超参数theta和目标函数的对应值。 return theta_opt, func_min
默认情况下,使用scipy.optimize.minimize中的’L-BFGS-B’算法。如果传递None,则核的参数保持固定。可用的内部优化器有:
'fmin_l_bfgs_b'
- n_restarts_optimizerint, default=0
用于找到最大化对数边际似然的核参数的优化器重启次数。第一次运行优化器从核的初始参数开始,其余的(如果有)从允许的theta值空间中对数均匀随机采样的thetas开始。如果大于0,所有界限必须有限。请注意,n_restarts_optimizer=0意味着执行一次运行。
- max_iter_predictint, default=100
在预测中用于近似后验的牛顿法中的最大迭代次数。较小的值会减少计算时间,但会导致结果较差。
- warm_startbool, default=False
如果启用热启动,则在拉普拉斯近似后验模式的最后一次牛顿迭代中的解用作下一次调用_posterior_mode()的初始化。当_posterior_mode在超参数优化中多次调用类似问题时,这可以加速收敛。参见 术语表 。
- copy_X_trainbool, default=True
如果为True,则在对象中存储训练数据的持久副本。否则,仅存储对训练数据的引用,这可能导致在数据外部修改时预测发生变化。
- random_stateint, RandomState 实例 或 None, default=None
确定用于初始化中心的随机数生成。传递一个int以在多次函数调用中获得可重复的结果。参见 术语表 。
- multi_class{‘one_vs_rest’, ‘one_vs_one’}, default=’one_vs_rest’
指定如何处理多类分类问题。支持’one_vs_rest’和’one_vs_one’。在’one_vs_rest’中,为每个类拟合一个二元高斯过程分类器,该分类器训练以将此类与其余类分开。在’one_vs_one’中,为每对类拟合一个二元高斯过程分类器,该分类器训练以将这两类分开。这些二元预测器的预测结果组合成多类预测。请注意,’one_vs_one’不支持预测概率估计。
- n_jobsint, default=None
用于计算的作业数:指定的多类问题并行计算。
None
意味着1,除非在joblib.parallel_backend
上下文中。-1
意味着使用所有处理器。参见 术语表 了解更多详情。
- Attributes:
- base_estimator_ :``Estimator`` 实例
定义使用观测数据的对数似然函数的估计器实例。
kernel_
核实例返回基础估计器的核函数。
- log_marginal_likelihood_value_float
self.kernel_.theta
的对数边际似然- classes_形状为 (n_classes,) 的数组
唯一的类标签。
- n_classes_int
训练数据中的类数
- n_features_in_int
在 fit 期间看到的特征数。
Added in version 0.24.
- feature_names_in_形状为 (
n_features_in_
,) 的 ndarray 在 fit 期间看到的特征名称。仅当
X
的特征名称均为字符串时定义。Added in version 1.0.
See also
GaussianProcessRegressor
高斯过程回归(GPR)。
References
Examples
>>> 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]])
- fit(X, y)#
拟合高斯过程分类模型。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组或对象列表
特征向量或其他表示的训练数据。
- y形状为 (n_samples,) 的类数组
目标值,必须是二进制的。
- Returns:
- selfobject
返回 self 实例。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- property kernel_#
返回基础估计器的核函数。
- log_marginal_likelihood(theta=None, eval_gradient=False, clone_kernel=True)#
返回训练数据的theta的对数边缘似然。
在多类分类的情况下,返回一对一分类器的平均对数边缘似然。
- Parameters:
- theta形状为(n_kernel_params,)的类数组,默认=None
评估对数边缘似然的核超参数。在多类分类的情况下,theta可能是复合核的超参数或单个核的超参数。在后一种情况下,所有单个核都被分配相同的theta值。如果为None,则返回
self.kernel_.theta
的预计算对数边缘似然。- eval_gradientbool, 默认=False
如果为True,则额外返回位置theta处的核超参数对数边缘似然的梯度。请注意,梯度计算不支持非二分类。如果为True,则theta不能为None。
- clone_kernelbool, 默认=True
如果为True,则复制kernel属性。如果为False,则修改kernel属性,但可能会提高性能。
- Returns:
- log_likelihoodfloat
训练数据theta的对数边缘似然。
- log_likelihood_gradient形状为(n_kernel_params,)的ndarray,可选
位置theta处的核超参数对数边缘似然的梯度。 仅当
eval_gradient
为True时返回。
- predict(X)#
执行对测试向量数组 X 的分类。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组或对象列表
查询点,在这些点上评估用于分类的 GP。
- Returns:
- C形状为 (n_samples,) 的 ndarray
预测的 X 的目标值,值来自
classes_
.
- predict_proba(X)#
返回测试向量X的概率估计。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组或对象列表
查询点,在这些点上评估用于分类的GP。
- Returns:
- C形状为 (n_samples, n_classes) 的类数组
返回模型中每个类别的样本概率。列对应于按属性 classes_ 中出现的顺序排序的类别。
- score(X, y, sample_weight=None)#
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的指标,因为你要求每个样本的每个标签集都被正确预测。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组
测试样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
` X`的真实标签。
- sample_weight形状为 (n_samples,) 的类数组,默认=None
样本权重。
- Returns:
- scorefloat
self.predict(X)
相对于y
的平均准确率。
- set_params(**params)#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
)。后者具有形式为<component>__<parameter>
的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') GaussianProcessClassifier #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weight
parameter inscore
.
- Returns:
- selfobject
The updated object.