KernelDensity#

class sklearn.neighbors.KernelDensity(*, bandwidth=1.0, algorithm='auto', kernel='gaussian', metric='euclidean', atol=0, rtol=0, breadth_first=True, leaf_size=40, metric_params=None)#

核密度估计。

更多信息请参阅 用户指南

Parameters:
bandwidthfloat 或 {“scott”, “silverman”},默认=1.0

核的带宽。如果 bandwidth 是浮点数,它定义了核的带宽。如果 bandwidth 是字符串,则实现一种估计方法。

algorithm{‘kd_tree’, ‘ball_tree’, ‘auto’},默认=’auto’

要使用的树算法。

kernel{‘gaussian’, ‘tophat’, ‘epanechnikov’, ‘exponential’, ‘linear’, ‘cosine’},默认=’gaussian’

要使用的核。

metricstr,默认=’euclidean’

用于距离计算的度量。请参阅 scipy.spatial.distance 的文档和 distance_metrics 中列出的度量,以获取有效的度量值。

并非所有度量都适用于所有算法:请参阅 BallTreeKDTree 的文档。请注意,只有欧几里得距离度量才能正确地对密度输出进行归一化。

atolfloat,默认=0

结果的期望绝对容差。较大的容差通常会加快执行速度。

rtolfloat,默认=0

结果的期望相对容差。较大的容差通常会加快执行速度。

breadth_firstbool,默认=True

如果为真(默认),使用广度优先方法解决问题。否则使用深度优先方法。

leaf_sizeint,默认=40

指定底层树的叶大小。详情请参阅 BallTreeKDTree

metric_paramsdict,默认=None

要传递给树的用于度量的附加参数。更多信息请参阅 BallTreeKDTree 的文档。

Attributes:
n_features_in_int

fit 过程中看到的特征数量。

Added in version 0.24.

tree_ :``BinaryTree`` 实例

用于快速广义 N 点问题的树算法。

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 过程中看到的特征名称。仅当 X 的特征名称均为字符串时定义。

bandwidth_float

带宽的值,由 bandwidth 参数直接给出或使用 ‘scott’ 或 ‘silverman’ 方法估计。

Added in version 1.0.

See also

sklearn.neighbors.KDTree

用于快速广义 N 点问题的 K 维树。

sklearn.neighbors.BallTree

用于快速广义 N 点问题的球树。

Examples

使用固定带宽计算高斯核密度估计。

>>> from sklearn.neighbors import KernelDensity
>>> import numpy as np
>>> rng = np.random.RandomState(42)
>>> X = rng.random_sample((100, 3))
>>> kde = KernelDensity(kernel='gaussian', bandwidth=0.5).fit(X)
>>> log_density = kde.score_samples(X[:3])
>>> log_density
array([-1.52955942, -1.51462041, -1.60244657])
fit(X, y=None, sample_weight=None)#

拟合核密度模型到数据上。

Parameters:
X形状为 (n_samples, n_features) 的类数组

包含 n_features 维数据点的列表。每一行 对应一个数据点。

yNone

忽略。此参数仅为了与 Pipeline 兼容而存在。

sample_weight形状为 (n_samples,) 的类数组,默认=None

附加到数据 X 的样本权重列表。

Added in version 0.20.

Returns:
selfobject

返回实例本身。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

sample(n_samples=1, random_state=None)#

生成模型的随机样本。

目前,这仅针对高斯和顶帽核实现。

Parameters:
n_samplesint, default=1

要生成的样本数量。

random_stateint, RandomState实例或None, default=None

确定用于生成随机样本的随机数生成。 为跨多个函数调用获得可重复的结果传递一个int。 参见 Glossary

Returns:
Xarray-like of shape (n_samples, n_features)

样本列表。

score(X, y=None)#

计算模型下的总对数似然。

Parameters:
X形状为 (n_samples, n_features) 的类数组

包含 n_features 维数据点的列表。每一行 对应一个数据点。

yNone

忽略。此参数仅为了与 Pipeline 兼容而存在。

Returns:
logprobfloat

数据 X 的总对数似然。这是归一化为概率密度, 因此对于高维数据,值会很低。

score_samples(X)#

计算每个样本在模型下的对数似然。

Parameters:
X形状为 (n_samples, n_features) 的类数组

要查询的点的数组。最后一个维度应与训练数据的维度(n_features)匹配。

Returns:
density形状为 (n_samples,) 的 ndarray

X 中每个样本的对数似然。这些值被归一化为概率密度,因此对于高维数据,值会较低。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelDensity#

Request metadata passed to the fit method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to fit .

  • 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 in fit .

Returns:
selfobject

The updated object.

set_params(**params)#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline )。后者具有形式为 <component>__<parameter> 的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。