Машинное обучение для страховой компании: Исследуем алгоритмы |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-06-23 12:21 искусственный интеллект, алгоритмы машинного обучения, реализация нейронной сети Предлагаю продолжить добрую традицию, которая началась в пятницу чуть больше месяца назад. Тогда я поделилась с вами вводной статьёй о том, для чего нужно машинное обучение в страховой компании и как проверялась реалистичность самой идеи. Сегодня будет её продолжение, в котором начинается самое интересное — тестирование алгоритмов.
Цикл статей «Машинное обучение для страховой компании» 1. Реалистичность идеи2. Исследуем алгоритмы 3. Оптимизация модели Использование возможности встраивания скриптов Python в Azure для предобработки данных В первой статье мы говорили о том, что Azure поддерживает использование Python-скриптов. Необходимый для этого модуль может принимать на вход два массива данных и zip-архив с дополнительными материалами (например, другими скриптами, библиотеками и пр).Простой пример: в первой статье в конечной оценке была ремарка о несбалансированной по классам тестовой выборке. Исправить ситуацию можно, введя в схему несложный скрипт, который отфильтрует лишние строки во всей выборке. В качестве демонстрации сделаем это следующим способом (возможны и другие). Модуль возвращает измененный массив данных, в котором (как будет видно позже) содержится равное для обоих классов количество записей. Анализ используемых данных. Использование MS Analysis Service Практически в любой задаче машинного обучения необработанные данные не дают удовлетворительного результата. Для выделения наиболее информативных для модели признаков потребуется data mining.В прототипе, о котором шла речь в предыдущей статье, было использовано два типа данных: количество посещений пациентом врача за последние три месяца и последняя потраченная на этот визит сумма. Для начала добавим:
Однако так мы только увеличим количество признаков, никак их не обработав. Для этого используем MS Analysis Services, в котором для извлечения признаков применяется машинное обучение — в частности, упрощенный алгоритм Байеса. По результатам можно выбрать границы для бинарного представления входных данных. Например, «возраст младше 19» и «количество обращений к врачу меньше 5» свидетельствуют о большей вероятности отсутствия пика. В то время как «возраст старше 64» и «количество обращений больше 14» чреваты затратами в следующем месяце. Можно получить список диагнозов, которые чаще других предшествуют большим тратам. Это только часть выбранных диагнозов. В каждом из диагнозов, с вероятностью от 85% до 100%, последует пик затрат. Их наличие стоит вынести в отдельный признак. Не стоит упускать и наличие обычных диагнозов, которые не обойдутся компании дорого. Поэтому следует провести нормировку найденных вероятностей и ввести новый признак, который будет представлять собой взвешенную сумму количества диагнозов за последние 90 дней. В результате получено семь параметров в векторе входных признаков. Сравним их с тем, что было получено в прошлый раз с использованием разных алгоритмов. Тестирование различных алгоритмов и выставление их параметров Мы определись с параметрами, которые будут использованы для обучения. Рассмотрим несколько разных алгоритмов классификации: logistic regression, support vector machine, decision jungle/random forest, Bayesian network. Очевидным вариантом также являются нейронные сети, но это отдельная сложная тема и в данном случае этот алгоритм будет излишним.Поскольку была проведена фильтрация данных для получения сбалансированной выборки, граничное значение для присвоения классов пока менять не будем. К этому вопросу мы вернемся в следующей статье. Logistic regression Это частный случай линейного регрессора, приспособленного к задачам классификации. Алгоритм уже упоминался в первой статье, где он использовался для построения простейшей модели в качестве прототипа.На начальном этапе он позволяет получить исходное значение в промежутке от минус до плюс бесконечности. Далее осуществим преобразование, используя сигмоидальную функцию вида 1/(1+e^(-score) ),, где score — это полученное ранее значение, осуществляем преобразование. Результатом будет число в пределах от -1 до +1. Решение о принадлежности к классу принимается на основании выбранного порогового значения. Параметры:
Этот алгоритм был использован в прототипе модели, поэтому сравнение будет наиболее показательно. Даже без настройки границы определения классов и с небольшими добавками в вектор входных признаков, процент верно предсказанных пиков увеличился на 5%, а их отсутствия — на 15%. Такой важный показатель, как площадь под кривой этого графика, тоже существенно вырос. Этот параметр отражает, насколько хорошо при разных граничных значениях соотносятся друг с другом значения классов. Чем дальше кривая находится от диагонали — тем лучше. Support Vector Machine Метод опорных векторов входит в группу линейных классификаторов, хотя некоторые модификации в основную часть алгоритма позволяют строить и нелинейные классификаторы. Суть заключается в переводе исходных данных в более высокую размерность и построении разделяющей гиперплоскости. Увеличение размерности необходимо, так как исходные вектора часто линейно неразделимы. После перевода гиперплоскость ищется с условием максимального зазора до гиперплоскостей, обозначающих границу классов.Параметры:
По графику видно, что это не самый удачный алгоритм для данной задачи. Точность и площадь под кривой низкие. К тому же, сама кривая имеет нестабильный характер, что могло бы быть допустимо для прототипа, но не для модели с обработанными данными. Bayesian network Байесовские сети — это вероятностная модель данных, представленная в виде ациклического направленного графа. Вершинами графа являются переменные, отражающие истинность некоего суждения, а ребра — степень зависимости между ними. Настройка модели заключается в подборе этих переменных и взаимосвязи между ними. В нашем случае, конечным оцениваемым суждением, на котором сходится граф, будет наличие пика затрат.Параметры:
Байесовский классификатор показал результаты, очень похожие на результаты логистической регрессии. Поскольку регрессия более простая, между ними остановимся на ней. Random Forest Этот метод представляет собой комитет классических деревьев решений. В данном алгоритме деревья не подвергаются прунингу (прунинг — метод снижения сложности модели через урезание ветвей дерева после того, как оно полностью построено). Тем не менее, условия ранней остановки остаются. Разнообразие достигается за счет выбора случайных подмножеств исходных данных. Размер остается тем же, но в этих подмножествах допускаются повторные использования одних и тех же данных.В каждом дереве используется случайное подмножество признаков размера m (m — настраиваемый параметр, однако часто предлагается использовать значение, близкое к корню из размера исходного вектора признаков). Классификация проходит через голосование. Класс, получивший наибольшее количество голосов, побеждает. Параметры:
Random forest оказался наиболее результативным алгоритмом, дав прирост к определению пиков на 8% и их отсутствия на 13%. Немаловажным в контексте задачи является и лучшая интерпретируемость причин определения данных к какому-либо из классов. Конечно, этот алгоритм в целом является черным ящиком, однако для него есть относительно несложные способы извлечения необходимой информации. Во всех описанных выше алгоритмах, кроме байесовских сетей, есть параметр “create trainer mode”. Выставив его на Parameter Range, можно включить режим, в котором алгоритм обучится на различных вариантах комбинаций параметров в пределах заданных диапазонов, и выдаст лучший вариант. Эту особенность осветим позже. Использование cross-validation для проверки variance Кросс-валидационная оценка может использоваться для решения различных задач. Например, ее используют для борьбы с переобучением в условиях малого количества данных для выделения отдельной валидационной выборки. Сейчас она потребуется в качестве инструмента для проверки способности текущей модели к обобщению. Для этого разделим данные на десять частей и рассмотрим каждую из них как тестовую. Далее необходимо будет обучить модель на каждом варианте разделения.Возьмем алгоритм, показавший лучшие результаты среди остальных — Random Forest. По всем выборкам результат устойчивый и достаточно высокий. Модель имеет хорошую способность к обобщению, а на обучение подается достаточное количество данных. Итог Во этой части из цикла статей о машинном обучении мы рассмотрели:
Полученные результаты говорят о явном улучшении точности и стабильности модели. В заключительной статье мы затронем вопросы переобучения, статистических выбросов и комитетов. Об авторах Команда WaveAccess создаёт технически сложное, высоконагруженное и отказоустойчивое программное обеспечение для компаний из разных стран. Комментарий Александра Азарова, руководителя направления machine learning в WaveAccess:Машинное обучение позволяет автоматизировать области, где на текущий момент доминируют экспертные мнения. Это дает возможность снизить влияние человеческого фактора и повысить масштабируемость бизнеса. Источник: habrahabr.ru Комментарии: |
|