2

мне нужен алгоритм машинного обучения, которые будут удовлетворять следующие требования:Машинное обучение - классификация классификации/новизны класса/оценка аномалии?

  • обучающих данных представляют собой набор векторов признаков, все принадлежащий к тому же, «позитивный» класс (как я не могу давать отрицательные образцы данных) ,
  • Данные испытаний - это некоторые векторы признаков, которые могут или не могут относиться к положительному классу.
  • Предсказание должно быть непрерывным значением, которое должно указывать «расстояние» от положительных выборок (т. Е. 0 означает, что тестовый образец явно принадлежит к положительному классу, а 1 означает, что он явно отрицательный, но 0,3 означает, что он несколько положителен)

Пример: Предположим, что векторы признаков являются объектами 2D-объектов.

положительные данные тренировки:

  • (0, 1), (0, 2), (0, 3)

Тестовые данные:

  • (0, 10) должна быть аномальной, но не отдельной.
  • (1, 0) должна быть аномальной, но с более высоким «рангом», чем (0, 10)
  • (1, 10) должна быть аномалия с еще более высокой аномалией «ранг»
+0

Идея заключается в том, чтобы исследовать «расстояние» от положительных примеров (как в обнаружении аномалий) , Я действительно ищу алгоритм обнаружения аномалий в процентах (каков масштаб аномалии). – ido4848

+0

Можете ли вы уточнить, например. о чем ваши данные? Можете ли вы предоставить некоторые выборочные данные ввода и то, что вы ожидаете в результате? – miraculixx

+0

@miraculixx я добавил пример – ido4848

ответ

2

Описанная вами проблема обычно упоминается как выброс, аномалия или обнаружение новизны. Существует много методов, которые могут быть применены к этой проблеме. Хороший обзор методов обнаружения новинок можно найти here. В статье дается подробная классификация методов и краткое описание каждого из них, но как начать, я перечислю некоторые из стандартных:

  • K-nearest neighbors - простой метод на основе расстояния, который предполагает, что нормальные выборки данных близки к другим нормальным образцам данных, в то время как новые образцы расположены далеко от нормальных точек. Реализация Python KNN находится в ScikitLearn.
  • Mixture models (например, модель гауссовой смеси) - вероятностные модели, моделирующие генеративную функцию плотности вероятности данных, например, с использованием смеси гауссовых распределений. Учитывая набор нормальных выборок данных, цель состоит в том, чтобы найти параметры распределения вероятности, чтобы они лучше описывали образцы. Затем используйте вероятность того, что новая выборка решит, принадлежит ли она распределению или является выбросом. ScikitLearn реализует Gaussian Mixture Models и использует алгоритм максимизации ожиданий, чтобы изучить их.
  • Однокомпонентная векторная машина поддержки (SVM) - расширение стандарта SVM classifier, которое пытается найти границу, которая отделяет обычные образцы от неизвестных новых образцов (в классическом подходе граница определяется путем максимизации разницы между нормальные образцы и происхождение пространства, проецируемые на так называемое «пространство объектов»). У ScikitLearn есть реализация one-class SVM, которая позволяет вам легко использовать ее и приятно example.Я прикрепить сюжет этого примера, чтобы проиллюстрировать краевые один-класс СВМ находит «вокруг» нормальные выборок данных: enter image description here
+0

Что касается моделей смеси, когда вы говорите: «Используйте вероятность нового образца, чтобы решить, принадлежит ли это распределению или является выбросом», какова вероятность того, что именно? Например, sci-kit GMM's метод pred_proba (http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture) возвращает вектор вероятностей, сумма которых равна 1. Я надеялся, что новинка вернет вектор с очень низкой вероятностью для всех компонентов, поэтому не обязательно суммировать до 1. – felipeduque

Смежные вопросы