Обнаружение аномалий Python (Pyod) не сходится - PullRequest
1 голос
/ 07 мая 2019

Я экспериментирую с PYOD , используя CBLOF для обнаружения аномалий.Я не смог пометить аномалии с помощью этого алгоритма.Я обнаружил, что когда я запускаю алгоритм CBLOF, он выдает следующую ошибку:

ValueError: Несоответствие буфера dtype, ожидаемое значение INT, но полученное значение long long

Исключение, игнорируемое в: 'sklearn.cluster.Пожалуйста, измените n_clusters или измените метод кластеризации

Похоже, что алгоритм CBLOF зависит от sklearn.cluster и ожидаемый тип данных, который передается в skelearn от pyod, не тот, который ожидается.

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

Я также пытался изменить размер кластера, используя метод локтя, чтобы найти оптимальное значение K в сценарии Kmeans.

Пример кода:

from pyod.models.cblof import CBLOF
import pyod.utils as ut
from sklearn import cluster

#create some data
data = ut.data.generate_data()[0]

#scenario 1 - use default CBLOF parameters
model = CBLOF()
clusters = model.fit_predict(data)

#scenario 2 - use kmeans as a centroid estimator
n_clusters = 3
kmeans = cluster.KMeans(n_clusters)
model = CBLOF(n_clusters = n_clusters, clustering_estimator = kmeans)
clusters = model.fit_predict(data)

#test if scaling the data makes a difference
data_scaled = (data - data.min())/(data.max()-data.min())

#scenario 3 - no clusters specified, use defaults, scaled data
model = CBLOF()
clusters = model.fit_predict(data_scaled)

#scenario 4 - use kmeans as a centroid estimator, scaled data
n_clusters
kmeans = cluster.KMeans(n_clusters)
model = CBLOF(n_clusters = n_clusters, clustering_estimator = kmeans)
clusters = model.fit_predict(data_scaled)

Все пакеты IЯ использую последние, и я также попытался использовать различные типы данных в моем входном массиве.

Почему выбрасываются эти ошибки?

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Проблема связана с тем, что sklearn и PyOD не обновляются.

0 голосов
/ 08 мая 2019

Можно ли открыть отчет о проблеме на https://github.com/yzhao062/pyod/issues напрямую, чтобы мы могли отслеживать происходящее?

Может потребоваться некоторое расследование:)

...