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]дает вес ребра, соединяющегоitoj. Матрица имеет формат 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
Обновленный объект.