Система по выявлению подозрительных данныхИсточник: businessdataanalytics Максим Гончаров
При проектировании учетных систем большое внимание уделяется разработке процедур контроля корректности вводимых данных. Причина вполне понятна: неправильные данные при заполнении заказа на покупку, ошибки при вводе информации в страховой контракт, противоречивая информация об одном и том же клиенте из разных систем могут служить причиной принятия неправильных решений и, как следствие, вести к финансовым и репутационным потерям компании. Традиционно, контроль правильности ввода информации ложится на СУБД и на бизнес-логику приложения. На уровне базы данных контролируется заполненность полей, ссылочная целостность, соблюдение простых бизнес-правил (например, количество приобретаемых товаров должно быть положительным). Соблюдение более сложных бизнес-правил (например, лимит задолжности покупателя при формировании нового заказа не должен превышать определенную сумму) часто контролируется на уровне приложения, хотя иногда этим также занимается база данных на уровне триггеров. Контроль непротиворечивости данных из различных систем, в процессе которого данные проверяются на соответствие различным правилам, часто осуществляется на уровне импорта их в общее аналитическое хранилище. Это позволяет, избегая явных коллизий, строить сводные аналитические отчеты по всем процессам в компании из всех учетных систем. Все эти традиционные и необходимые подходы объединяет требование четкого описания и формализации всех правил, на соответствие которым система должна проверять входные данные. Однако существуют ошибки ввода, которые заранее предусмотреть очень трудно или невозможно. Например, мы можем предусмотреть формальные бизнес-правила, описывающие, что скидка на товар не может быть больше 100%; человек, берущий кредит, должен быть совершеннолетним; а в чеке все покупки должны быть с положительными величинами. В этом случае предоставленная скидка в размере 98% при покупке автомобиля; девятнадцатилетний возраст человека, оформляющего кредит на покупку дома; 5 килограмм петрушки в чеке в супермаркете теоретически не исключены, но крайне подозрительны. Существуют несколько подходов по выявлению таких подозрительных данных и сигнализации о них. Первый подход основывается на принципах нечеткой логики, т.е. когда ограничения на размер скидки, возраст или объем закупки формулируются в несколько размытых терминах принадлежности к допустимому множеству. Т.е. функция принадлежности к категории "молодой человек" принимает значение 1 ("точно" молодой) в диапазоне возраста от 0 до 25 лет, значение 0 ("точно" не молодой) в диапазоне более 45 лет и промежуточное значение от 0 до 1 между 25 и 45 годами. Алгебра с нечеткими множествами целиком описывается операциями с нечеткими функциями принадлежности, так, например, является ли человек одновременно молодым и богатым описывается произведением функции его принадлежности к множеству молодых и функции принадлежности к множеству богатых. Этот подход достаточно распространен, но обладает недостатком, заключающимся в произвольности описания нечетких границ, формы функции принадлежности и выбором пороговых значений для принятия решений. Вследствие этого требуется большое время для адаптации таких правил к реальным требованиям, а также большая зависимость от экспертных оценок. Второй и более эффективный, на наш взгляд, подход заключается в статистическом анализе вводимой записи и оценке ее вероятности в уже накопленной истории записей того же типа. Так как совокупность исторических записей может быть неоднородной, то мы должны учитывать уже сложившуюся структуру в накопленной информации. То есть сначала мы должны выделить в накопленной истории группы похожих по статистическим характеристикам записей (кластеров) и оценить вероятность проверяемой на подозрительность информации на принадлежность к одной из уже выделенных групп. Если вводимая информация не вписывается в сложившуюся структуру, т. е. вероятность ее принадлежности ко всем выделенным группам мала (ниже определенного порога), то система сигнализирует о наличии подозрительного ввода и необходимости проведения дополнительной проверки этой информации на правильность. Мы предлагаем реализацию описанного подхода на платформе Microsoft SQL Server Analysis Services 2005/2008 с использованием алгоритма кластеризации Expectation Maximization. В качестве клиентского приложения визуального анализа подозрительных данных можно использовать Microsoft Excel 2007.
Проиллюстрируем этот подход на демонстрационных данных о клиентах компании Adventure Works. У нас есть таблица со следующей информацией о клиентах:
Таким образом, использование средств Data Mining позволяет быстро и эффективно обнаруживать подозрительные и, возможно, ошибочные данные, что повышает контроль целостности и непротиворечивости информации в учетных и аналитических системах компании. |