Sklearn рекомендует кластерные алгоритмы для обучения без учителя - PullRequest
1 голос
/ 28 января 2020

Медленно входя в слово Sklearn, более конкретно c алгоритмы неконтролируемой кластеризации. Я работаю над проектом, который сводит файл xml в файл csv, эта часть выполнена.

Теперь я хочу реализовать любой метод sklearn для обнаружения аномалий в моих данных.

Файл CSV находится в формате Dataframe, где есть некоторые столбцы с описаниями, а другие имеют значения. Эти значения также могут быть десятичными значениями 55,2

Какой из алгоритмов Склеарна больше подходит для обнаружения аномалий с использованием обучения без контроля?

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

Ответы [ 2 ]

2 голосов
/ 28 января 2020

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

Некоторые алгоритмы кластеризации, например DB-SCAN , создают «кластер аномалий». В этом кластере есть все экземпляры, которые не принадлежат ни одному другому кластеру. Я бы предложил попробовать и посмотреть, решит ли это вашу проблему.

Почти все алгоритмы кластеризации ожидают вектор чисел в качестве входных данных. Если вы хотите использовать строковые столбцы, вы можете использовать такие методы, как One Hot Encoding , чтобы преобразовать строку в вектор чисел. Есть много способов сделать это, и вы можете найти некоторые реализации sk-learn здесь .

1 голос
/ 28 января 2020

Какой из алгоритмов Sklearn больше подходит для обнаружения аномалий с использованием обучения без учителя?

Наиболее часто используемые алгоритмы: , эти , рекомендованные sklearn.

Вначале я просто хочу попытаться найти аномалии для чисел, если есть какое-то число, которому там не место.

Как я вижу, вы можете попробуйте подход обнаружения новизны, здесь у вас есть базовое объяснение c. По моему опыту OneClassSVM - это надежный алгоритм.

...