核密度估计#
- 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)[source]#
核密度估计。
更多信息请参见 用户指南。
- 参数:
- 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
- 属性:
另请参见
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)[source]#
在数据上拟合核密度模型。
- 参数:
- Xarray-like 形状为 (n_samples, n_features)
n_features 维数据点的列表。每一行对应一个数据点。
- yNone
忽略。此参数仅为了与
Pipeline
兼容而存在。- sample_weightarray-like 形状为 (n_samples,), 默认值=None
附加到数据 X 的样本权重列表。
在 0.20 版本中添加。
- 返回:
- selfobject
返回实例本身。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查看 用户指南,了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
一个封装路由信息的
MetadataRequest
。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deepbool,默认为True
如果为True,则将返回此估计器以及包含的作为估计器的子对象的的参数。
- 返回:
- paramsdict
参数名称与其值的映射。
- sample(n_samples=1, random_state=None)[source]#
从模型中生成随机样本。
目前,这仅适用于高斯核和顶帽核。
- 参数:
- n_samplesint,默认为1
要生成的样本数。
- random_stateint、RandomState 实例或 None,默认为 None
确定用于生成随机样本的随机数生成。传递一个整数以在多次函数调用中获得可重复的结果。参见 词汇表。
- 返回:
- Xarray-like 形状为 (n_samples, n_features)
样本列表。
- score(X, y=None)[source]#
计算模型下的总对数似然。
- 参数:
- Xarray-like 形状为 (n_samples, n_features)
n_features 维数据点的列表。每一行对应一个数据点。
- yNone
忽略。此参数仅为了与
Pipeline
兼容而存在。
- 返回:
- logprobfloat
X 中数据的总对数似然。这被标准化为概率密度,因此对于高维数据,该值将较低。
- score_samples(X)[source]#
计算模型下每个样本的对数似然。
- 参数:
- Xarray-like 形状为 (n_samples, n_features)
要查询的一组点。最后一维应与训练数据的维数 (n_features) 相匹配。
- 返回:
- densityndarray 形状为 (n_samples,)
X
中每个样本的对数似然。这些被标准化为概率密度,因此对于高维数据,值将较低。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelDensity [source]#
请求传递给
fit
方法的元数据。请注意,只有在
enable_metadata_routing=True
时(参见sklearn.set_config
)此方法才相关。请参阅 用户指南,了解路由机制的工作原理。每个参数的选项为
True
:请求元数据,如果提供则传递给fit
。如果未提供元数据,则忽略请求。False
:不请求元数据,元估计器不会将其传递给fit
。None
:不请求元数据,如果用户提供元数据,元估计器将引发错误。str
:元数据应使用此给定的别名而不是原始名称传递给元估计器。
默认值(
sklearn.utils.metadata_routing.UNCHANGED
)保留现有请求。这允许您更改某些参数的请求而不更改其他参数的请求。版本 1.3 中新增。
注意
仅当将此估计器用作元估计器的子估计器时(例如,在
Pipeline
内使用)此方法才相关。否则,它无效。- 参数:
- sample_weightstr、True、False 或 None,默认为 sklearn.utils.metadata_routing.UNCHANGED
fit
中sample_weight
参数的元数据路由。
- 返回:
- selfobject
更新后的对象。