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
中列出的度量,以获取有效的度量值。并非所有度量都适用于所有算法:请参阅
BallTree
和KDTree
的文档。请注意,只有欧几里得距离度量才能正确地对密度输出进行归一化。- atolfloat,默认=0
结果的期望绝对容差。较大的容差通常会加快执行速度。
- rtolfloat,默认=0
结果的期望相对容差。较大的容差通常会加快执行速度。
- breadth_firstbool,默认=True
如果为真(默认),使用广度优先方法解决问题。否则使用深度优先方法。
- leaf_sizeint,默认=40
- metric_paramsdict,默认=None
- Attributes:
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
(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 tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.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 infit
.
- Returns:
- selfobject
The updated object.