RadiusNeighborsRegressor#
- class sklearn.neighbors.RadiusNeighborsRegressor(radius=1.0, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None)#
基于固定半径邻域的回归。
目标是通过训练集中最近邻目标的局部插值来预测的。
更多信息请参阅 用户指南 。
Added in version 0.9.
- Parameters:
- radiusfloat, default=1.0
默认用于
radius_neighbors
查询的参数空间范围。- weights{‘uniform’, ‘distance’}, callable or None, default=’uniform’
用于预测的权重函数。可能的值:
‘uniform’ : 均匀权重。每个邻域中的所有点权重相同。
‘distance’ : 按距离的倒数加权。在这种情况下,查询点的近邻将比远邻有更大的影响。
[callable] : 用户定义的函数,接受距离数组并返回相同形状的权重数组。
默认使用均匀权重。
- algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’
用于计算最近邻的算法:
注意:在稀疏输入上拟合将覆盖此参数的设置,使用暴力搜索。
- leaf_sizeint, default=30
传递给 BallTree 或 KDTree 的叶子大小。这会影响构建和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。
- pfloat, default=2
Minkowski 度量的幂参数。当 p = 1 时,这相当于使用曼哈顿距离(l1),当 p = 2 时,相当于使用欧几里得距离(l2)。对于任意 p,使用 Minkowski 距离(l_p)。
- metricstr or callable, default=’minkowski’
用于距离计算的度量。默认是 “minkowski”,当 p = 2 时,结果为标准欧几里得距离。请参阅 scipy.spatial.distance 的文档和
distance_metrics
中列出的度量,以获取有效的度量值。如果度量是 “precomputed”,则假定 X 是距离矩阵,并且在拟合时必须是方阵。X 可以是 稀疏图 ,在这种情况下,只考虑 “非零” 元素作为邻居。
如果度量是可调用函数,它接受两个表示一维向量的数组作为输入,并返回一个值,指示这些向量之间的距离。这适用于 Scipy 的度量,但比将度量名称作为字符串传递效率低。
- metric_paramsdict, default=None
度量函数的额外关键字参数。
- n_jobsint, default=None
用于邻居搜索的并行作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参阅 Glossary 。
- Attributes:
- effective_metric_str or callable
使用的距离度量。它将与
metric
参数相同或为其同义词,例如,如果metric
参数设置为 ‘minkowski’ 且p
参数设置为 2,则为 ‘euclidean’。- effective_metric_params_dict
度量函数的额外关键字参数。对于大多数度量,将与
metric_params
参数相同,但如果effective_metric_
属性设置为 ‘minkowski’,则可能还包含p
参数值。- n_features_in_int
在 fit 过程中看到的特征数。
Added in version 0.24.
- feature_names_in_ndarray of shape (
n_features_in_
,) 在 fit 过程中看到的特征名称。仅当
X
的特征名称均为字符串时定义。Added in version 1.0.
- n_samples_fit_int
拟合数据中的样本数。
See also
NearestNeighbors
实现邻域搜索的无监督学习器。
KNeighborsRegressor
基于 k-最近邻的回归。
KNeighborsClassifier
基于 k-最近邻的分类器。
RadiusNeighborsClassifier
基于给定半径内邻居的分类器。
Notes
有关
algorithm
和leaf_size
选择的讨论,请参阅在线文档中的 Nearest Neighbors 。https://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm
Examples
>>> X = [[0], [1], [2], [3]] >>> y = [0, 0, 1, 1] >>> from sklearn.neighbors import RadiusNeighborsRegressor >>> neigh = RadiusNeighborsRegressor(radius=1.0) >>> neigh.fit(X, y) RadiusNeighborsRegressor(...) >>> print(neigh.predict([[1.5]])) [0.5]
- fit(X, y)#
拟合从训练数据集得到的半径邻域回归器。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features) 或 如果 metric=’precomputed’ 则为 (n_samples, n_samples)
训练数据。
- y{array-like, sparse matrix},形状为 (n_samples,) 或 (n_samples, n_outputs)
目标值。
- Returns:
- selfRadiusNeighborsRegressor
拟合的半径邻域回归器。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- predict(X)#
预测提供数据的标签。
- Parameters:
- X{array-like, sparse matrix} of shape (n_queries, n_features), 或 (n_queries, n_indexed) if metric == ‘precomputed’
测试样本。
- Returns:
- yndarray of shape (n_queries,) or (n_queries, n_outputs), dtype=double
目标值。
- radius_neighbors(X=None, radius=None, return_distance=True, sort_results=False)#
查找给定半径内的点的邻居。
返回数据集中每个点在查询数组的点周围半径为
radius
的球内的索引和距离。位于边界上的点包含在结果中。结果点与其查询点的距离不一定按升序排序。
- Parameters:
- X{array-like, sparse matrix} of (n_samples, n_features), default=None
查询点或点。 如果未提供,则返回每个索引点的邻居。 在这种情况下,查询点不视为其自身的邻居。
- radiusfloat, default=None
返回邻居的限制距离。默认值是在构造函数中传递的值。
- return_distancebool, default=True
是否返回距离。
- sort_resultsbool, default=False
如果为True,距离和索引将在返回前按升序排序。如果为False,结果可能未排序。如果
return_distance=False
,设置sort_results=True
将导致错误。Added in version 0.22.
- Returns:
- neigh_distndarray of shape (n_samples,) of arrays
表示到每个点的距离的数组,仅在
return_distance=True
时存在。距离值根据metric
构造函数参数计算。- neigh_indndarray of shape (n_samples,) of arrays
一个数组的数组,包含来自总体矩阵的近似最近点的索引,这些点位于查询点周围半径为
radius
的球内。
Notes
因为每个点的邻居数量不一定相等,多个查询点的结果不能适应标准数据数组。 为了效率,
radius_neighbors
返回对象数组,其中每个对象是索引或距离的1D数组。Examples
在以下示例中,我们从一个表示数据集的数组构造一个NeighborsClassifier类,并询问谁是[1, 1, 1]最近的点:
>>> import numpy as np >>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(radius=1.6) >>> neigh.fit(samples) NearestNeighbors(radius=1.6) >>> rng = neigh.radius_neighbors([[1., 1., 1.]]) >>> print(np.asarray(rng[0][0])) [1.5 0.5] >>> print(np.asarray(rng[1][0])) [1 2]
第一个返回的数组包含所有距离小于1.6的点的距离,而第二个返回的数组包含它们的索引。通常,可以同时查询多个点。
- radius_neighbors_graph(X=None, radius=None, mode='connectivity', sort_results=False)#
计算X中点的(加权)邻居图。
邻居限制在距离小于半径的点。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features),默认=None
查询点或点。 如果未提供,则返回每个索引点的邻居。 在这种情况下,查询点不被视为其自身的邻居。
- radiusfloat,默认=None
邻域的半径。默认值是在构造函数中传递的值。
- mode{‘connectivity’, ‘distance’},默认=’connectivity’
返回矩阵的类型:’connectivity’ 将返回带有1和0的连通性矩阵,在’distance’中, 边是点之间的距离,距离的类型取决于NearestNeighbors类中选择的度量参数。
- sort_resultsbool,默认=False
如果为True,结果中的每一行的非零条目将按增加的距离排序。如果为False,非零条目可能 不会排序。仅在mode=’distance’时使用。
Added in version 0.22.
- Returns:
- A形状为 (n_queries, n_samples_fit) 的稀疏矩阵
n_samples_fit
是拟合数据中的样本数量。A[i, j]
给出连接i
到j
的边的权重。 矩阵为CSR格式。
See also
kneighbors_graph
计算X中点的(加权)k-邻居图。
Examples
>>> X = [[0], [3], [1]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(radius=1.5) >>> neigh.fit(X) NearestNeighbors(radius=1.5) >>> A = neigh.radius_neighbors_graph(X) >>> A.toarray() array([[1., 0., 1.], [0., 1., 0.], [1., 0., 1.]])
- score(X, y, sample_weight=None)#
返回预测的决定系数。
决定系数 \(R^2\) 定义为 \((1 - rac{u}{v})\) ,其中 \(u\) 是残差平方和
((y_true - y_pred)** 2).sum()
,而 \(v\) 是总平方和((y_true - y_true.mean()) ** 2).sum()
。最好的可能得分是 1.0,它可能是负的(因为模型可能任意地差)。一个总是预测y
的期望值的常数模型,忽略输入特征,将得到 \(R^2\) 得分为 0.0。- Parameters:
- Xarray-like of shape (n_samples, n_features)
测试样本。对于某些估计器,这可能是一个预计算的核矩阵或一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是估计器拟合中使用的样本数量。- yarray-like of shape (n_samples,) or (n_samples, n_outputs)
X
的真实值。- sample_weightarray-like of shape (n_samples,), default=None
样本权重。
- Returns:
- scorefloat
\(R^2\) 相对于
y
的self.predict(X)
。
Notes
在调用回归器的
score
时使用的 \(R^2\) 得分从 0.23 版本开始使用multioutput='uniform_average'
以保持与r2_score
默认值一致。 这影响了所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_params(**params)#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
)。后者具有形式为<component>__<parameter>
的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RadiusNeighborsRegressor #
Request metadata passed to the
score
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 toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.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 inscore
.
- Returns:
- selfobject
The updated object.