Интеллектуальная база данных - возможность определения необычных значений - PullRequest
1 голос
/ 17 января 2010

Я ищу инструмент или систему, чтобы взглянуть на базу данных и определить необычные значения. Мне ничего не нужно делать в режиме реального времени, просто система, которая выполняет обработку в одночасье или в запланированные моменты. Я ищу систему на двух уровнях:

  1. По всей базе данных: Например: сравнить зарплаты всех сотрудников и определить, кто слишком низок или слишком высок от среднего.

  2. На сотрудника: Например: проверить историю заработной платы сотрудника и определить выплаты, которые являются необычными для сотрудника.

Приведенные выше два являются только примерами, например, случай снятия наличных в банкоматах, история заказов на покупки, история счетов и т. Д.

Ответы [ 4 ]

0 голосов
/ 20 января 2010

Существуют различные методы поиска выбросов: на основе расстояния, на основе кластера и т. Д.

Вы можете использовать аналитику обнаружения или кластеризации Data Applied. Первый автоматически находит записи, которые больше всего отличаются от их N ближайших соседей. Второй находит большие группы (кластеры) записей и идентифицирует записи, которые не подходят ни к одному кластеру. Они делают его бесплатным для небольших наборов данных, и он онлайн (http://www.data -applied.com ). Вам не нужно писать код, но вы можете использовать их веб-API, если хотите.

0 голосов
/ 17 января 2010

Трудная часть - это определение «необычно».

То, что вы пытаетесь сделать, это то, для чего предназначено программное обеспечение для обнаружения мошенничества, когда кто-то отмывает деньги. Ваш простой пример - легкий. Более сложные из них выполняются с базами данных, статистикой, интеллектуальным анализом данных и механизмами правил, которые содержат много правил. Это непростая проблема, если только вы не хотите ограничиться приведенным вами тривиальным случаем.

Если вам удастся превратить это в легкую проблему, вы станете богатым человеком. Удачи.

0 голосов
/ 18 января 2010

Вы можете использовать службы Analysis Services и модель интеллектуального анализа данных.

Очевидно, вам придется адаптировать код, но вот пример от Microsoft:

http://www.sqlserverdatamining.com/ssdm/Default.aspx?tabid=101&Id=83

"В этом примере показано, как алгоритм кластеризации можно использовать для автоматической проверки данных с помощью функции PredictCaseLikelihood (). Чтобы выполнить пример, введите значения в форму и нажмите кнопку отправки. Если комбинация значений имеет разумную вероятность, форма будет принимать значения. Если нет, дополнительные элементы запроса прогнозирования указывают значение, которое может быть недопустимым. Если установить флажок «Показать подробности» в форме, будет показан запрос, отправленный в дополнение к коэффициенты вероятности, используемые для определения отдаленных значений. "

0 голосов
/ 17 января 2010

У меня не установлен MySQL в данный момент, но я думаю, что первое может быть достигнуто с помощью запроса, подобного следующему (вне головы, не проверено, не может работать вообще):

SELECT name, salary FROM emp WHERE salary>(SELECT AVG(salary) FROM emp);

Или более сложный запрос будет:

SELECT name, salary from emp WHERE salary - (SELECT AVG(salary) FROM emp) >
        (SELECT AVG(salary - (SELECT AVG(salary) FROM emp)) FROM emp);

2-й в основном выбирает работников, чьи зарплаты отличаются от средней зарплаты более чем на среднюю разницу всех зарплат работников.

Дай мне знать, работает ли он.

...