RadiusNeighborsClassifier#

класс sklearn.neighbors.RadiusNeighborsClassifier(radius=1.0, *, веса='uniform', алгоритм='auto', leaf_size=30, p=2, метрика='minkowski', outlier_label=None, metric_params=None, n_jobs=None)[источник]#

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

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

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

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

веса{‘uniform’, ‘distance’}, вызываемый или None, по умолчанию=’uniform’

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

  • ‘uniform’ : равномерные веса. Все точки в каждом соседстве взвешиваются одинаково.

  • 'distance' : взвешивать точки обратно пропорционально их расстоянию. в этом случае ближайшие соседи точки запроса будут иметь большее влияние, чем соседи, находящиеся дальше.

  • ndarray типа float формы=(len(list(cv)),)

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

алгоритм{‘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). Ожидается, что этот параметр будет положительным.

метрикаstr или callable, по умолчанию='minkowski'

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

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

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

outlier_label{manual label, 'most_frequent'}, default=None

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

  • ручная метка: str или int метка (должна быть того же типа, что и y) или список ручных меток, если используется многовариантный вывод.

  • ‘most_frequent’ : присвоить выбросам наиболее частую метку y.

  • None : при обнаружении любого выброса будет вызвано ValueError.

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

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

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

n_jobsint, default=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

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

n_samples_fit_int

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

outlier_label_int или array-like формы (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)[источник]#

Обучить классификатор ближайших соседей по радиусу на обучающем наборе данных.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features) или (n_samples, n_samples) если metric='precomputed'

Обучающие данные.

y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_outputs)

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

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

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

6332()[источник]#

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

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

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

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

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

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

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

predict(X)[источник]#

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

Параметры:
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)[источник]#

Возвращает оценки вероятностей для тестовых данных 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)[источник]#

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

Возвращает индексы и расстояния каждой точки из набора данных, лежащей в шаре размером 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)[источник]#

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

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

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

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

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

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

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

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

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

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

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

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

n_samples_fit это количество образцов в подогнанных данных. A[i, j] дает вес ребра, соединяющего i to 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)[источник]#

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

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

Параметры:
Xмассивоподобный объект формы (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)[источник]#

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

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

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

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

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

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

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RadiusNeighborsClassifier[источник]#

Настроить, следует ли запрашивать передачу метаданных в score метод.

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

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

  • True: запрашиваются метаданные и передаются score если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в score.

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

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

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

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

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

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

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

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