Mahout - Машинное обучение
Apache Mahout - это хорошо масштабируемая библиотека машинного обучения, которая позволяет разработчикам использовать оптимизированные алгоритмы. Mahout реализует популярные методы машинного обучения, такие как рекомендации, классификация и кластеризация. Поэтому разумно иметь краткий раздел о машинном обучении, прежде чем двигаться дальше.
Что такое машинное обучение?
Машинное обучение - это отрасль науки, которая занимается программированием систем таким образом, чтобы они автоматически учились и улучшались с опытом. Здесь обучение означает распознавание и понимание входных данных и принятие мудрых решений на основе предоставленных данных.
Очень сложно принять все решения на основе всех возможных исходных данных. Для решения этой проблемы разработаны алгоритмы. Эти алгоритмы строят знания на основе конкретных данных и прошлого опыта с принципами статистики, теории вероятностей, логики, комбинаторной оптимизации, поиска, обучения с подкреплением и теории управления.
Разработанные алгоритмы составляют основу различных приложений, таких как:
- Обработка зрения
- Языковая обработка
- Прогнозирование (например, тенденции фондового рынка)
- Распознавание образов
- Games
- Сбор данных
- Экспертные системы
- Robotics
Машинное обучение - обширная область, и описание всех его функций выходит за рамки данного руководства. Есть несколько способов реализовать методы машинного обучения, но наиболее часто используемые из них:supervised и unsupervised learning.
Контролируемое обучение
Контролируемое обучение занимается изучением функции на основе доступных данных обучения. Алгоритм обучения с учителем анализирует данные обучения и выдает предполагаемую функцию, которую можно использовать для отображения новых примеров. Общие примеры контролируемого обучения включают:
- классификация электронных писем как спама,
- маркировка веб-страниц на основе их содержания, и
- распознавание голоса.
Существует множество контролируемых алгоритмов обучения, таких как нейронные сети, машины опорных векторов (SVM) и наивные байесовские классификаторы. Mahout реализует наивный байесовский классификатор.
Неконтролируемое обучение
Обучение без учителя позволяет понять немаркированные данные без какого-либо предопределенного набора данных для их обучения. Обучение без учителя - чрезвычайно мощный инструмент для анализа доступных данных и поиска закономерностей и тенденций. Чаще всего он используется для кластеризации похожих входных данных в логические группы. Общие подходы к обучению без учителя включают:
- k-means
- самоорганизующиеся карты и
- иерархическая кластеризация
Рекомендация
Рекомендации - это популярный метод, который дает точные рекомендации на основе пользовательской информации, такой как предыдущие покупки, клики и оценки.
Amazon использует эту технику для отображения списка рекомендуемых товаров, которые могут вас заинтересовать, извлекая информацию из ваших прошлых действий. За Amazon работают рекомендательные системы, которые фиксируют поведение пользователей и рекомендуют выбранные элементы на основе ваших предыдущих действий.
Facebook использует технику рекомендаций, чтобы идентифицировать и рекомендовать «список людей, которых вы, возможно, знаете».
Классификация
Классификация, также известная как categorization, это метод машинного обучения, который использует известные данные для определения того, как новые данные следует классифицировать по набору существующих категорий. Классификация - это форма обучения с учителем.
Поставщики почтовых услуг, такие как Yahoo! и Gmail используют этот метод, чтобы решить, следует ли классифицировать новое письмо как спам. Алгоритм категоризации обучается, анализируя привычки пользователей отмечать определенные письма как спам. Исходя из этого, классификатор решает, будет ли будущее письмо помещаться в ваш почтовый ящик или в папку для спама.
Приложение iTunes использует классификацию для подготовки списков воспроизведения.
Кластеризация
Кластеризация используется для формирования групп или кластеров похожих данных на основе общих характеристик. Кластеризация - это форма обучения без учителя.
Поисковые системы, такие как Google и Yahoo! использовать методы кластеризации для группировки данных со схожими характеристиками.
Группы новостей используют методы кластеризации для группировки различных статей по связанным темам.
Механизм кластеризации полностью просматривает входные данные и на основании характеристик данных решает, в какой кластер они должны быть сгруппированы. Взгляните на следующий пример.
Наша библиотека учебных пособий содержит темы по различным предметам. Когда мы получаем новое руководство в TutorialsPoint, оно обрабатывается механизмом кластеризации, который на основе своего содержимого решает, где его следует сгруппировать.