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)[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
如果为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]#
在数据上拟合核密度模型。
- 参数:
- X类数组,形状为 (n_samples, n_features)
n_features 维数据点的列表。每行对应一个数据点。
- yNone
忽略。此参数仅为与
Pipeline
兼容而存在。- sample_weight类数组,形状为 (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
决定用于生成随机样本的随机数生成。传入一个整数可在多次函数调用中获得可复现的结果。参见词汇表。
- 返回:
- X类数组,形状为 (n_samples, n_features)
样本列表。
- score(X, y=None)[source]#
计算模型下的总对数似然。
- 参数:
- X类数组,形状为 (n_samples, n_features)
n_features 维数据点的列表。每行对应一个数据点。
- yNone
忽略。此参数仅为与
Pipeline
兼容而存在。
- 返回:
- logprobfloat
X 中数据的总对数似然。这被归一化为概率密度,因此对于高维数据,其值会很低。
- score_samples(X)[source]#
计算模型下每个样本的对数似然。
- 参数:
- X类数组,形状为 (n_samples, n_features)
要查询的点数组。最后一维应与训练数据(n_features)的维数匹配。
- 返回:
- density形状为 (n_samples,) 的 ndarray
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
更新后的对象。