Я работаю над поиском аномалий в данных. Мой набор данных состоит из 2 переменных - цена товара и объем товара, приобретенного за одну покупку. У меня нет информации о товаре, кроме его цены. Я пытаюсь найти аномалии (например, дорогостоящие предметы, купленные в больших количествах за одну покупку) в наборе данных, используя технику обучения без присмотра.
Выше приведен одномерный график Объем
Выше приведен одномерный график Purchase_amount
. На обоих графиках видно, что данные очень искажены, и, следовательно, K-means может не очень хорошо работать с данные. Вот график рассеяния тома по сравнению с покупкой:
Я попытался использовать преобразование 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 . Я не слишком уверен, почему графики выглядят странно.
Не знаю, как мне подойти к этому вопросу. Должен ли я изучить DBSCAN вместо этого? Есть ли хороший способ выбрать значение minPts для набора данных с примерно 400+ точками данных?
Ценю любую помощь / предложения. Заранее спасибо!