Для хранения таких наборов данных используется обычная табличная форма. Это может быть, например, база данных, файл CSV или таблица MS Excel. При этом названия колонок обозначают имена атрибутов, а строки самой таблицы ЂЂЂ отдельные объекты, подлежащие обработке. (Внутри программы, как и при математических рассуждениях, объекты представляются в виде векторов в многомерном пространстве. При этом оси координат соответствуют отдельным атрибутам, то есть отдельным элементам вектора.)
Как правило, в наборе данных вводят также один специальный атрибут ЂЂЂ так называемый атрибут класса. На обучающих данных (если используется метод с обучением, конечно же) его значение известно, а для обрабатываемых ЂЂЂ его требуется вычислить. Для примера с кандидатами на работу обучающая выборка может включать в себя признак того, считается ли кандидат подходящим, неподходящим или возможно_подходящим для данной работы. Именно этот признак и будет являться атрибутом класса, и именно его будет требоваться вычислить для новых резюме.
Сами атрибуты могут быть нескольких типов. В примере выше возраст ЂЂЂ это числовой атрибут. Наличие высшего образования ЂЂЂ булевский. Кроме этих двух типов часто встречаются категориальные или номинальные атрибуты, грубо говоря ЂЂЂ перечисления. Например, для кандидата на работу это может быть национальность или семейное положение (и речь тут не о дискриминации, а о сборе максимального количества доступной информации :)). Очень редко вводят также строковые атрибуты, где значением могут являться произвольные строки.
Хотя существует довольно много моделей представления объектов в машинном обучении, наибольшее распространение получила так называемая модель пространства признаков. В ней каждый объект представляется в виде набора пар [атрибут, значение], которые и называются признаками. Например, кандидат на должность девелопера может иметь такие атрибуты как возраст, наличие высшего образования, количество лет использования платформы, запрашиваемая зарплата и т.д. Эта информация затем может быть использована для автоматического отсеивания кандидатов, принимать которых на работу слишком рискованно или невыгодно.
Всё это хорошо, но довольно абстрактно. Как же процесс машинного обучения происходит на практике? Ниже я опишу, как представляются входные и выходные данные, а также как происходит решение наиболее распространённых задач машинного обучения.
Иногда машинное обучение можно обнаружить в самых необычных местах. Так, например, не многие знают, что современные виртуальные машины, такие как CLR или JVM, используют его для оптимизации скомпилированного кода. Например, наиболее распространённая реализация JVM ЂЂЂ Oracle HotSpot ЂЂЂ постоянно следит за производительностью кода и собирает статистику. Как только статистики оказывается достаточно, чтобы принять решение об оптимизации, код перестраивается и улучшается. Отсюда следует ещё одно определение ML: машинное обучение ЂЂЂ это научная дисциплина, занимающаяся созданием алгоритмов, позволяющим вычислительной машине улучшать свою производительность на основании эмпирических данных. При этом под производительностью понимается процентное количество правильно обработанных образцов, например, правильно угаданных ветвей выполнения программы.
Можно сказать, что машинное обучение (machine learning) ЂЂЂ это набор алгоритмов и методов, позволяющих вычислительной машине делать предсказания на основании предыдущего опыта, такого как статистические данные. Так, например, GMail собирает спам сообщения, помеченные пользователями, и на их основе строит классификатор, позволяющий определять, является ли спамом новое письмо. Другой пример иcпользования ML компанией Google ЂЂЂ ранжирование результатов поиска. На основании статистики от пользователей или экспертов строится линейная модель (уравнение вида y = w0 + w1x1 + w2x2 + ... + wnxn, где w1ЂЂЂwn ЂЂЂ веса, а x1ЂЂЂxn ЂЂЂ признаки объекта), показывающая, какой вклад в итоговый рейтинг страницы вносят различные показатели, такие как количество ссылок с других страниц, количество ключевых слов в названии, тексте и ссылке, индекс tf*idf и т.д. При этом результатом обучения является не просто программа, способная сортировать результаты, но понятная человеку формула. То есть с помощью машинного обучения из ЂЂЂсырыхЂЂЂ данных можно получить новую полезную информацию. В таких случаях вместо названия ЂЂЂмашинное обучениеЂЂЂ обычно используют другое ЂЂЂ ЂЂЂизвлечение данныхЂЂЂ (data mining). Извлечение данных активно используется аналитиками для оптимизации процессов в своих областях. Например, изучение ассоциативных правил (см. ниже) может помочь выяснить, какие товары чаще всего покупают вместе, и разместить их в магазине соответствующим образом. Однако этот блог в первую очередь для технарей, а не для аналитиков, поэтому в дальнейшем я буду говорить в основном про машинное обучение, а случаи, когда алгоритм или метод может быть применён для извлечения данных, буду оговаривать специально.
Не так давно в списке вакансий одной белорусской компании, чьё название обычно пишется в виде HTML-тега, висела вакансия лингвиста. Зачем софтверной компании лингвист? Ответ можно найти в одном из пунктов требований ЂЂЂ для ЂЂЂopinion miningЂЂЂ (ЂЂЂдобыча мненийЂЂЂ, ЂЂЂизвлечение мненийЂЂЂ, хотя сама компания переводит этот термин как ЂЂЂсентиментный анализЂЂЂ, подразумевая, видимо, другое распространённое название этой задачи ЂЂЂ ЂЂЂsentiment analysisЂЂЂ, дословно ЂЂЂанализ настроенийЂЂЂ). Грубо говоря, извлечение мнений ЂЂЂ это определение отношения говорящего к предмету разговора. Используется, например, для мониторинга репутации продуктов компании, оценки политических явлений и даже для предсказания индекса Dow Jones. Об извлечении мнений я обязательно напишу отдельную развёрнутую статью, но сначала расскажу про более общую область, на которой и основан opinion mining, а именно про машинное обучение.
Комментариев нет:
Отправить комментарий