Какие предметы, темы нужно выучить выпускнику информатики, чтобы применить доступные рамки машинного обучения, особенноSVMs - PullRequest
5 голосов
/ 22 сентября 2010

Я хочу научить себя достаточно машинному обучению, чтобы я мог, для начала, понять достаточно, чтобы использовать доступные фреймворки с открытым исходным кодом ML, которые позволят мне делать такие вещи, как:

  1. Просмотрите исходный HTML-код страниц определенного сайта и «поймите», какие разделы образуют контент, какие рекламные объявления, а какие - метаданные (ни контент, ни объявления, например, -Оглавление, биография автора и т. Д.)

  2. Просмотрите исходный HTML-код страниц из разрозненных сайтов и "классифицируйте", принадлежит ли сайт определенной категории или нет (список категорий будет предоставлен заранее)) 1.

  3. ... аналогичные задачи классификации по тексту и страницам.

Как видите, мои непосредственные требования связаны склассификация по разнородным источникам данных и большим объемам данных.

Насколько я понимаю, использование подхода нейронной сети будетВы много тренируетесь и поддерживаете, чем используете SVM?

Я понимаю, что SVM хорошо подходят для (бинарных) задач классификации, таких как моя, и фреймворки с открытым исходным кодом, такие как libSVM, достаточно развиты?

В таком случае, какие предметы и темы нужно изучать выпускнику информатики прямо сейчас, чтобы можно было решить вышеуказанные требования и использовать эти рамки?

Я бы хотелостаться в стороне от Java, возможно, и у меня нет никаких языковых предпочтений иначе.Я готов учиться и приложить столько усилий, сколько смогу.

Мое намерение состоит не в том, чтобы писать код с нуля, а для того, чтобы начать использовать различные фреймворки, доступные для использования (я не знаю достаточночтобы решить, какой именно), и я смогу исправить ситуацию, если они пойдут не так .

Рекомендации от вас по изучению определенных частей статистики и теории вероятностей не являются неожиданными с моей стороны,так что скажите, что если потребуется!

Я изменю этот вопрос при необходимости, в зависимости от всех ваших предложений и отзывов.

Ответы [ 4 ]

4 голосов
/ 22 сентября 2010

«Понимание» в машинном обучении эквивалентно наличию модели.Модель может быть, например, набором опорных векторов, макетом и весами нейронной сети, деревом решений или другими.Какой из этих методов работает лучше всего, зависит от предмета, который вы изучаете, и от качества ваших обучающих данных.

В вашем случае, изучая коллекцию HTML-сайтов, вы захотите предварительно обработать данныеВо-первых, этот шаг также называется «извлечением признаков».То есть вы извлекаете информацию со страницы, на которую смотрите.Это трудный шаг, потому что он требует знания предметной области, и вам придется извлекать полезную информацию, иначе ваши классификаторы не смогут провести хорошие различия.Извлечение функций даст вам набор данных (матрицу с элементами для каждой строки), из которой вы сможете создать свою модель.

Обычно при машинном обучении рекомендуется также иметь «набор тестов», которыйвы не тренируете свои модели, но в конце будете использовать их, чтобы выбрать лучший метод.Крайне важно, чтобы тестовый набор оставался скрытым до самого конца этапа моделирования!Тестовые данные в основном дают вам подсказку об «ошибке обобщения», которую делает ваша модель.Любая модель с достаточной сложностью и временем обучения стремится узнать именно ту информацию, с которой вы ее обучаете.Ученики машин говорят, что модель «перекрывает» тренировочные данные.Такие переоборудованные модели кажутся хорошими, но это всего лишь запоминание.

Хотя программная поддержка предварительной обработки данных очень скудна и сильно зависит от предметной области, как упоминал Адам Weka - хороший бесплатный инструмент дляприменяя различные методы, как только у вас есть набор данных.Я бы порекомендовал прочитать несколько книг.Владимир Вапник написал «Природа теории статистического обучения», он является изобретателем SVM.Вы должны ознакомиться с процессом моделирования, поэтому книга по машинному обучению определенно очень полезна.Я также надеюсь, что некоторая терминология может быть полезной для вас, чтобы найти дорогу.

3 голосов
/ 23 сентября 2010

Для меня это выглядит довольно сложной задачей;шаг 2, классификация, «прост», но шаг 1 выглядит как задача изучение структуры .Возможно, вы захотите упростить его до классификации по частям HTML-деревьев, возможно, предварительно выбрав некоторые эвристики.

2 голосов
/ 22 сентября 2010

Наиболее широко используемая общедоступная библиотека для машинного обучения (свободно): WEKA .У них есть книга, которая знакомит с некоторыми понятиями ML и описывает, как использовать их программное обеспечение.К сожалению для вас, он полностью написан на Java.

Я не совсем Python, но меня удивит, если для него не так много инструментов , так какну.

Для текстовой классификации прямо сейчас Наивный байесовский подход, деревья решений (в частности, J48) и SVM дают наилучшие результаты.Однако каждый из них больше подходит для немного разных приложений.Я не уверен, что подойдет вам лучше всего.С таким инструментом, как WEKA, вы можете попробовать все три подхода с некоторыми примерами данных без написания строки кода и убедиться в этом.

Я склонен уклоняться от нейронных сетей просто потому, что они могут очень быстро усложниться.С другой стороны, я не пробовал с ними крупный проект, в основном потому, что они имеют такую ​​репутацию в академических кругах.

Знание вероятностей и статистики требуется только в том случае, если вы используете вероятностные алгоритмы (такие как Наивный Байес).SVM, как правило, не используются в вероятностной манере.

Исходя из этого, вы можете захотеть инвестировать в настоящий учебник по классификации шаблонов или взять урок по нему, чтобы найти именно то, что вы ищете.Для пользовательских / нестандартных наборов данных может быть сложно получить хорошие результаты, не имея обзора существующих методов.

1 голос
/ 22 сентября 2010

Мне кажется, что вы сейчас входите в поле машинного обучения, поэтому я действительно хотел бы предложить взглянуть на эту книгу : не только она дает глубокуюи обширный обзор наиболее распространенных подходов и алгоритмов машинного обучения (и их вариаций), но он также предоставляет очень хороший набор упражнений и ссылок на научные статьи.Все это обернуто в проницательный язык, помеченный минимальным и все же полезным сборником о статистике и вероятности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...