Spec-Zone.ru › scikit-learn

RadiusNeighborsClassifier

classsklearn.neighbors.RadiusNeighborsClassifier(radius=1.0, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', outlier_label=None, metric_params=None, n_jobs=None)[source]

Классификатор, реализующий голосование среди соседей в заданном радиусе.

Подробнее см. в Руководстве пользователя.

Параметры:
radiusfloat, по умолчанию=1.0

Диапазон параметрического пространства, используемого по умолчанию для запросов radius_neighbors.

weights{‘uniform’, ‘distance’}, callable или None, по умолчанию=’uniform’

Функция весов, используемая в прогнозировании. Возможные значения:

  • ‘uniform’ : равномерные веса. Все точки в каждом окрестности весят одинаково.
  • ‘distance’ : веса точек обратно пропорциональны их расстоянию. В этом случае, более близкие соседи точки запроса будут иметь большее влияние, чем соседи, которые находятся дальше.
  • [callable] : пользовательская функция, которая принимает массив расстояний и возвращает массив той же формы, содержащий веса.

По умолчанию используются равномерные веса.

algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, по умолчанию=’auto’

Алгоритм, используемый для вычисления ближайших соседей:

  • ‘ball_tree’ будет использовать BallTree
  • ‘kd_tree’ будет использовать KDTree
  • ‘brute’ будет использовать поиск методом грубой силы.
  • ‘auto’ попытается определить наиболее подходящий алгоритм на основе значений, переданных методу fit.

Примечание: подгонка на разреженных входных данных переопределит значение этого параметра, используя метод грубой силы.

leaf_sizeint, по умолчанию=30

Размер листа, передаваемый в BallTree или KDTree. Это может повлиять на скорость построения и запроса, а также на память, необходимую для хранения дерева. Оптимальное значение зависит от характера задачи.

pfloat, по умолчанию=2

Параметр степени для метрики Минковского. При p = 1, это эквивалентно использованию manhattan_distance (l1), а euclidean_distance (l2) для p = 2. Для произвольного p используется minkowski_distance (l_p). Ожидается, что этот параметр будет положительным.

metricstr или callable, по умолчанию=’minkowski’

Метрика, используемая для вычисления расстояния. По умолчанию “minkowski”, что приводит к стандартному евклидовому расстоянию при p = 2. См. документацию scipy.spatial.distance и метрики, перечисленные в distance_metrics для допустимых значений метрики.

Если метрика “precomputed”, X предполагается матрицей расстояний и должна быть квадратной во время подгонки. X может быть разреженной граф, в котором только «ненулевые» элементы могут считаться соседями.

Если метрика callable функция, она принимает два массива, представляющих одномерные векторы в качестве входных данных и должна возвращать одно значение, указывающее расстояние между этими векторами. Это работает для метрик Scipy, но менее эффективно, чем передача имени метрики как строки.

outlier_label{ручное значение, ‘most_frequent’}, по умолчанию=None

Метка для аномальных образцов (образцы без соседей в заданном радиусе).

  • ручное значение: str или int метка (должна быть того же типа, что и y) или список ручных меток, если используется многомерный вывод.
  • ‘most_frequent’ : присвоить наиболее часто встречающуюся метку y аномальным образцам.
  • None : при обнаружении аномалии будет выброшено исключение ValueError.

Метка аномалии должна быть выбрана из среди уникальных меток «Y». Если она указана с другим значением, будет выведено предупреждение, и все вероятности классов аномалий будут присвоены 0.

metric_paramsdict, по умолчанию=None

Дополнительные ключевые аргументы для функции метрики.

n_jobsint, по умолчанию=None

Количество параллельных задач для поиска соседей. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. Смотрите Словарь для получения дополнительной информации.

Атрибуты:
classes_ndarray формы (n_classes,)

Метки классов, известные классификатору.

effective_metric_str или callable

Используемая метрика расстояния. Она будет такой же, как и metric параметр, или его синоним, например, ‘euclidean’, если metric параметр установлен на ‘minkowski’ и p параметр установлен на 2.

effective_metric_params_dict

Дополнительные ключевые аргументы для функции метрики. Для большинства метрик будет таким же, как и metric_params параметр, но может также содержать значение p параметра, если effective_metric_ атрибут установлен на ‘minkowski’.

n_features_in_int

Количество признаков, увиденных во время подгонки.

Добавлен в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, увиденные во время подгонки. Определяются только тогда, когда X имеет имена признаков, которые все являются строками.

Добавлен в версии 1.0.

n_samples_fit_int

Количество образцов в данных, подвергнутых подгонке.

outlier_label_int или массив формы (n_class,)

Метка, которая выдаётся для аномальных образцов (образцы без соседей в заданном радиусе).

outputs_2d_bool

False, когда форма y равна (n_samples, ) или (n_samples, 1) во время подгонки, иначе True.

См. также

KNeighborsClassifier

Классификатор, реализующий голосование k ближайших соседей.

RadiusNeighborsRegressor

Регрессия на основе соседей в фиксированном радиусе.

KNeighborsRegressor

Регрессия на основе k ближайших соседей.

NearestNeighbors

Неконтролируемое обучение для реализации поиска соседей.

Примечания

См. Ближайшие соседи в онлайн-документации для обсуждения выбора algorithm и leaf_size.

https://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

Примеры

>>> X = [[0], [1], [2], [3]]
>>> y = [0, 0, 1, 1]
>>> from sklearn.neighbors import RadiusNeighborsClassifier
>>> neigh = RadiusNeighborsClassifier(radius=1.0)
>>> neigh.fit(X, y)
RadiusNeighborsClassifier(...)
>>> print(neigh.predict([[1.5]]))
[0]
>>> print(neigh.predict_proba([[1.0]]))
[[0.66666667 0.33333333]]
fit(X, y)[source]

Обучение классификатора радиусных соседей на обучающей выборке.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features) или (n_samples, n_samples), если metric=’precomputed’

Данные обучения.

y{array-like, разреженная матрица} формы (n_samples,) или (n_samples, n_outputs)

Целевые значения.

Возвращает:
selfRadiusNeighborsClassifier

Обученный классификатор радиусных соседей.

get_metadata_routing()[source]

Получить маршрутизацию метаданных для этого объекта.

Обратитесь к Руководству пользователя для получения информации о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры данного объекта.

Параметры:
deepbool, по умолчанию=True

Если True, вернет параметры данного объекта и вложенных подобъектов, являющихся объектами.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

predict(X)[source]

Предсказать метки классов для предоставленных данных.

Параметры:
X{array-like, sparse matrix} с формой (n_queries, n_features), или (n_queries, n_indexed), если metric == ‘precomputed’, или None

Тестовые образцы. Если None, возвращаются прогнозы для всех индексированных точек; в этом случае точки не рассматриваются как свои собственные соседи.

Возвращает:
yndarray с формой (n_queries,) или (n_queries, n_outputs)

Метки классов для каждого образца данных.

predict_proba(X)[source]

Возвратить оценки вероятностей для тестовых данных X.

Параметры:
X{array-like, sparse matrix} с формой (n_queries, n_features), или (n_queries, n_indexed), если metric == ‘precomputed’, или None

Тестовые образцы. Если None, возвращаются прогнозы для всех индексированных точек; в этом случае точки не рассматриваются как свои собственные соседи.

Возвращает:
pndarray с формой (n_queries, n_classes), или список из n_outputs таких массивов, если n_outputs > 1.

Вероятности классов входных образцов. Классы упорядочены лексикографически.

radius_neighbors(X=None, radius=None, return_distance=True, sort_results=False)[source]

Найти соседей в заданном радиусе точки или точек.

Возвращает индексы и расстояния каждой точки из набора данных, лежащих в шаре размером radius вокруг точек массива запроса. Точки, лежащие на границе, включаются в результаты.

Точки результата не обязательно отсортированы по расстоянию до точки запроса.

Параметры:
X{array-like, sparse matrix} с формой (n_samples, n_features), по умолчанию=None

Точка или точки запроса. Если не указано, возвращаются соседи каждой индексированной точки. В этом случае точка запроса не считается своим собственным соседом.

radiusfloat, по умолчанию=None

Предельное расстояние соседей для возврата. По умолчанию - значение, переданное в конструктор.

return_distancebool, по умолчанию=True

Возвращать ли расстояния.

sort_resultsbool, по умолчанию=False

Если True, расстояния и индексы будут отсортированы по возрастанию расстояний перед возвратом. Если False, результаты могут быть не отсортированы. Если return_distance=False, установка sort_results=True приведет к ошибке.

Добавлен в версии 0.22.

Возвращает:
neigh_distndarray с формой (n_samples,) из массивов

Массив, представляющий расстояния до каждой точки, присутствует только если return_distance=True. Значения расстояний вычисляются в соответствии с metric параметром конструктора.

neigh_indndarray с формой (n_samples,) из массивов

Массив массивов индексов приблизительно ближайших точек из матрицы популяции, которые лежат внутри шара размером radius вокруг точек запроса.

Примечания

Поскольку число соседей каждой точки не обязательно одинаково, результаты для нескольких точек запроса нельзя поместить в стандартный массив данных. Для повышения эффективности radius_neighbors возвращает массивы объектов, где каждый объект — 1D массив индексов или расстояний.

Примеры

В следующем примере мы создаем класс 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)[source]

Вычислить (взвешенный) граф соседей для точек в X.

Соседства ограничены точками на расстоянии меньше, чем радиус.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features), по умолчанию=None

Точка или точки запроса. Если не предоставлено, возвращаются соседи каждой проиндексированной точки. В этом случае точка запроса не считается собственным соседом.

radiusfloat, по умолчанию=None

Радиус соседств. По умолчанию используется значение, переданное в конструктор.

mode{‘connectivity’, ‘distance’}, по умолчанию=’connectivity’

Тип возвращаемой матрицы: ‘connectivity’ вернёт матрицу связности с единицами и нулями, в ‘distance’ рёбра являются расстояниями между точками, тип расстояния зависит от выбранного параметра метрики в классе NearestNeighbors.

sort_resultsbool, по умолчанию=False

Если True, в каждой строке результата ненулевые элементы будут отсортированы по возрастанию расстояний. Если False, ненулевые элементы могут быть не отсортированы. Используется только с mode=’distance’.

Добавлен в версии 0.22.

Возвращает:
Aразреженная матрица формы (n_queries, n_samples_fit)

n_samples_fit — количество образцов в подготовленных данных. A[i, j] задаёт вес ребра, соединяющего i с j. Матрица имеет формат CSR.

См. также

kneighbors_graph

Вычислить (взвешенный) граф k-соседей для точек в X.

Примеры

>>> 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)[source]

Возвращает среднюю точность по заданным тестовым данным и меткам.

В многоклассовой классификации это точность подмножества, которая является жёсткой метрикой, так как для каждого образца требуется, чтобы каждый набор меток был предсказан правильно.

Параметры:
Xarray-like формы (n_samples, n_features), или None

Тестовые образцы. Если None, используются предсказания для всех проиндексированных точек; в этом случае точки не считаются своими собственными соседями. Это означает, что knn.fit(X, y).score(None, y) неявно выполняет процедуру перекрестной проверки «оставить одну точку» и эквивалентна cross_val_score(knn, X, y, cv=LeaveOneOut()) , но обычно намного быстрее.

yarray-like формы (n_samples,) или (n_samples, n_outputs)

Истинные метки для X.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Веса образцов.

Возвращает:
scorefloat

Средняя точность self.predict(X) по отношению к y.

set_params(**params)[source]

Установить параметры этого оценщика.

Метод работает с простыми оценщиками, а также со вложенными объектами (такими как Pipeline). Последние имеют параметры вида <component>__<parameter> , так что можно обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → RadiusNeighborsClassifier[source]

Запрос метаданных, переданных методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются score при предоставлении. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их score.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.
  • str: метаданные должны быть переданы мета-оценщику с данным псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров и не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только в том случае, если этот оценщик используется как под-оценщик мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfобъект

Обновлённый объект.

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.neighbors.RadiusNeighborsClassifier.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API