Upload
pavel-egorov
View
776
Download
0
Embed Size (px)
Citation preview
Машинное обучение
Павел ЕгоровKontur.Labs
vk.com/pe.xoposhiy
Куча хороших данных
→ PROFIT
Примеры задач• Спам / боты• Сегментация рынка• Размеры футболок :-)• Ипотека• Рекомендации
Терминология
Исходные данные — множество векторовvi = (1, 0.5, 1.37, 2.8, -1, -0.1, …)
Координата вектора — фича
Обучение без учителя• Кластеризация• Иерархическая кластеризация• Сокращение размерности
Обучение с учителем
• РаспознаваниеДа/Нет
• Классификация Собака / Витрина / Лодыжка /
Дельфин
• РегрессияПочём завтра доллар?
Классификаторы…тренируются классифицировать на обучающей выборке
• Нейронные сети• KNN (K nearest neighbors)• Линейное разделение• Дерево решений• Рандомизированный лес• SVM
Мотивация• Сервера собирают нам данные• Задач ML полно!• Интернета уже много, а специалистов по ML
мало• ML — это не сложно
Feature-engineeringЗадача:«Узнать человека по использованию мыши и клавиатуры»
Фичи, господа, фичи!
Прагматичный взглядМашинное обучение — всего лишь способ объединения большого количества слабых признаков в сильный классификатор
Если фич мало — просто закодируйте эвристику.
Задача
Минутка саморекламыKontur.Labs :• Студенты, магистранты, аспиранты• Наукоёмкие, хитрые задачи
Очень-очень-очень скромный аналог MS Research
ЗадачаБухгалтерские документы:
акты, накладные, счета, договора, …
Установленных стандартных шаблонов — НЕТ!
Excel, Word
Хотим извлекать «интересные» поля:• Тип документа, Номер, Дата• Сумма, НДС, Основание• Покупатель, Продавец• …
Идеи?
Генеральный планИщем в документе поле, в котором Тип/Дата/Номер/…
Но постойте! Это же не задача классификации!
Двухходовка:Простая эвристика находит все гипотезыКлассификатор выбирает из них
правильную
Разметка базы
Demo
Генераторы гипотезРегулярное выражениеИногда очень сложноеИногда создающееся динамически
Требования:Среди гипотез должна присутствовать
корректнаяСложность ~ O(N)
Фичи?
Фичи• Положение на странице• Размер шрифта• Жирность• Расстояние* до ключевых слов и других
гипотез…и направление
• Длина гипотезы• Частотность символов, в гипотезе• Положение гипотезы внутри блока текста
(ячейки)• Выравнивание• Значение гипотезы (для сумм, и дат)
Фичи. ИнвариантностьИнвариантность относительно некоторых трансформаций:
Шрифт, масштаб, положение, синонимы, выравнивание текста, …
Фичи. Какие выбрать?Вычислять много фич — дорого
1. Заменим значение одной из фич белым шумом
2. Обучим классификатор3. Измерим на сколько упала точность
* Для некоторых классификаторов есть и более правильные способы — изучайте конкретный классификатор
Обучение и
тестированиеРазмеченная база:• Обучающая выборка• Тестовая выборка
Метрики качества:• Точность = корректноРаспознанные /
всеРаспознанные• Полнота = корректноРаспознанные /
всеКорректные
Общая схема
Для каждого поля отдельно
Размечаем базу
документов
Делаем генератор
гипотез
Обучаем
Изучаем ошибки
Придумываем фичи
Отладка
Demo
Отладка Random Forest
Image
Я тоже хочу так уметь!Machine learning @ Stanford university (www.coursera.org)
Классическая книга:Pattern Recognition and Machine Learning
Christopher M. Bishop
Книги попроще:Machine Learning in Action, Peter Harrington
Machine learning for Hackers, Drew Conway, John Myles White
Я тоже хочу так уметь!Языки программирования:
ROctave
Библиотеки:The Accord.NET FrameworkALGLIBOpenCV
Новые языки?!?v = read.csv("vectors.csv")hist(v[,4])plot(hclust(dist(v)))
Q&AЕгоров Павел, Kontur.Labs@[email protected]://vk.com/pe.xoposhiy
Данные — наше всё!• «Повезло» — у нас уже есть 100К+
документов.• Грубые фильтры:
Неинтересные нам документы (отчеты, расчеты, …)Дубли и очень похожие документыТестовые, пустые, мусор
→ ~2К документов
RandomForest
Excel• http://poi.apache.org (JAVA)• https://code.google.com/p/npoi/ (.NET port)
Текст-блок: X, Y, W, H, Font, VAlignment, HAllignmentИнтерпретация формул
Игнорируем:Картинки, объекты вне ячеек, границы,
…