Какие предметы, темы нужно выучить выпускнику информатики, чтобы применить доступные рамки машинного обучения, особенно SVMs

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

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

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

... похожие задачи классификации по тексту и страницам.

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

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

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

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

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

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

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

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

 Roger Pate24 сент. 2010 г., 19:24
Вы можете быть заинтересованы вProgrammers.SE.

Ответы на вопрос(4)

Решение Вопроса

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

 gaborous04 дек. 2012 г., 01:06
Я бы пошел дальше: важны не количество и не качество данных, а то, как вы их используете.Вы выбратьфункцииВы выбираетеалгоритми, что более важно, вы выбираетеПАРАМЕТРЫ (регуляризация, коэффициент ошибок F1 и т. д.). С огромным набором данных, но плохими параметрами вы далеко не уедете. Но с крошечным набором данных, но с очень хорошими параметрами, вы можете пойти очень далеко. Я советую вам посетить онлайн-курсМашинное обучение на Coursera профессором Эндрю Нг, вы быстро освоите конкретный набор инструментов для машинного обучения.

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

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

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

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

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

 PoorLuzer22 сент. 2010 г., 02:17
ОЧЕНЬ хорошо написанный ответ! Спасибо!

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

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

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

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

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

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

 PoorLuzer21 сент. 2010 г., 23:29
WEKA читается как инструмент, который я могу использовать дляесть чувство что мне может понадобиться?

Ваш ответ на вопрос