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)[源代码]#

核密度估计。

阅读更多的 User Guide .

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

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

algorithm' kd_tree ',' ball_tree ',',默认='自动'

要使用的树算法。

kernel“高斯”、“礼帽”、“epanechnikov”、“指数”、“线性”, ' cos '},默认='高斯'

要使用的内核。

metric字符串,默认='欧几里得'

用于距离计算的指标。请参阅文档 scipy.spatial.distance 以及中列出的指标 distance_metrics 获取有效的指标值。

并非所有指标对所有算法都有效:请参阅 BallTreeKDTree .请注意,密度输出的正规化仅对欧几里得距离度量正确。

atolfloat,默认=0

所需的结果绝对容忍度。 更大的容忍度通常会导致更快的执行。

rtolfloat,默认=0

结果的所需相对公差。 更大的容忍度通常会导致更快的执行。

breadth_first布尔,默认=True

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

leaf_sizeint,默认=40

指定基础树的叶子大小。 看到 BallTreeKDTree 有关详细信息

metric_paramsdict,默认=无

将传递到树以与指标一起使用的其他参数。 有关更多信息,请参阅的文档 BallTreeKDTree .

属性:
n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

tree_ : BinaryTree 例如BinaryTree实例

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

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

bandwidth_浮子

带宽值,直接由带宽参数给出或使用“scott”或“silverman”方法估计。

Added in version 1.0.

参见

sklearn.neighbors.KDTree

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

sklearn.neighbors.BallTree

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

示例

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

>>> 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)[源代码]#

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

参数:
X形状类似阵列(n_samples,n_features)

n_特征维数据点列表。 每一行对应一个数据点。

y没有一

忽视此参数仅为与兼容而存在 Pipeline .

sample_weight形状类似数组(n_samples,),默认=无

数据X所附的样本重量列表。

Added in version 0.20.

返回:
self对象

返回实例本身。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

sample(n_samples=1, random_state=None)[源代码]#

从模型生成随机样本。

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

参数:
n_samplesint,默认=1

要生成的样本数量。

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

确定用于生成随机样本的随机数生成。传递int以获得跨多个函数调用的可重复结果。看到 Glossary .

返回:
X形状类似阵列(n_samples,n_features)

样本列表。

score(X, y=None)[源代码]#

计算模型下的总log似然。

参数:
X形状类似阵列(n_samples,n_features)

n_特征维数据点列表。 每一行对应一个数据点。

y没有一

忽视此参数仅为与兼容而存在 Pipeline .

返回:
logprob浮子

X中数据的总log可能性。这被标准化为概率密度,因此对于多维数据来说该值很低。

score_samples(X)[源代码]#

计算模型下每个样本的log似然。

参数:
X形状类似阵列(n_samples,n_features)

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

返回:
density形状的nd数组(n_samples,)

每个样本的日志可能性 X .这些被标准化为概率密度,因此对于多维数据来说,值会很低。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelDensity[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

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

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。