Обнаружение аномалий с использованием методов кластеризации данных с перекосами - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю над поиском аномалий в данных. Мой набор данных состоит из 2 переменных - цена товара и объем товара, приобретенного за одну покупку. У меня нет информации о товаре, кроме его цены. Я пытаюсь найти аномалии (например, дорогостоящие предметы, купленные в больших количествах за одну покупку) в наборе данных, используя технику обучения без присмотра.

plot of frequency vs Volume

Выше приведен одномерный график Объем

enter image description here

Выше приведен одномерный график Purchase_amount

. На обоих графиках видно, что данные очень искажены, и, следовательно, K-means может не очень хорошо работать с данные. Вот график рассеяния тома по сравнению с покупкой: enter image description here

Я попытался использовать преобразование boxcox для обеих переменных, используя library(EnvStats) boxcox(volume, optimize = TRUE) boxcox(purchase_amount, optimize = TRUE)

Затем я сделал преобразование журнала на Purchase_amount и квадратное root преобразование на Volume .

sqrtvol <- sqrt(volume) 
qqnorm(logpa)
qqline(logpa)
qqnorm(sqrtvol)
qqline(sqrtvol)

Однако, qqplots, кажется, показывают, что после преобразования данные все еще не выглядят очень нормальными. Например, это qqplot для преобразованного Volume . Я не слишком уверен, почему графики выглядят странно. enter image description here

Не знаю, как мне подойти к этому вопросу. Должен ли я изучить DBSCAN вместо этого? Есть ли хороший способ выбрать значение minPts для набора данных с примерно 400+ точками данных?

Ценю любую помощь / предложения. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...