Выбор алгоритма и инструмента машинного обучения - PullRequest
2 голосов
/ 28 декабря 2011

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

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

Спасибо и С уважением, Рохит

Ответы [ 3 ]

4 голосов
/ 28 декабря 2011

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

1) Выберите простой алгоритм классификации для начала.Он не обязательно должен быть «лучшим», но он должен быть простым, с которым можно справиться.Нет смысла пытаться использовать более сложный подход, потому что, если он даст неожиданный результат, вы не сможете понять, почему.Возможно, начнем с простого алгоритма кластеризации, такого как k-означает .

2) Выберите язык / среду, с которой вы знакомы.Основные алгоритмы машинного обучения доступны во многих местах.Математики могут быть знакомы с Matlab или R. Программисты могут найти библиотеки на Python, C, Java, Fortran ... Если вы не знакомы с какими-либо статистическими пакетами и новички в программировании, возможно, это поможет - https://stackoverflow.com/questions/335063/whats-the-easiest-way-to-learn-programming

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

2 голосов
/ 28 декабря 2011

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

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

Что касается языка / инструментов / среды / инструментов, я бы предложил Octave, R или Matlab, если выне имеет твердого фона программирования.Если вы это сделаете, попробуйте найти хорошую библиотеку на языке, на котором вы наиболее свободно говорите. Я могу предложить хорошую библиотеку машинного обучения с открытым исходным кодом для Java - ( Mahout ).

Наконец,Я рекомендую этот Стэнфордский онлайн-курс по машинному обучению.Это бесплатно, подходит для начинающих, и не требует каких-либо знаний в любой другой области науки или техники.

1 голос
/ 29 декабря 2011

Если вы новичок в машинном обучении, вы можете проверить некоторые алгоритмы машинного обучения в онлайн-классе Стэнфордского машинного обучения (http://www.ml -class.org /).Класс очень практичен, и вы можете изучить некоторые базовые алгоритмы классификации (например, логическая регрессия, SVM, нейронные сети). Также были предоставлены некоторые упражнения по классификации (в октаве / матлабе).И были некоторые практические методы для разработки системы классификации.Это может помочь вам.

...