1

У меня есть набор данных в файле .tsv, доступный here. Я написал несколько классификаторов, чтобы решить, является ли данный сайт эфемерным или вечнозеленым.Какое ваше эмпирическое правило для первоначального выбора алгоритма машинного обучения/выполнения первоначальной настройки?

Моей первоначальная практика быстрое прототипирования, сделали случайный классификатор, 1Р классификатор, пробовала некоторые функции инженерию, линейную регрессию, логистическую регрессию, наивный Байес ... и т.д. и т.п.

Я сделал все это в перемешаны однако, некогерентно. Я хотел бы знать, если вам дали набор данных (ради аргумента, данные выше), как бы вы проанализировали его, чтобы найти подходящий классификатор? На что бы вы попытались извлечь смысл из своего набора данных изначально?

Это то, что я сделал правильно в этом возрасте программирования высокого уровня, где я могу запускать 5/6 алгоритмов по моим данным за ночь? Является ли метод быстрого прототипирования лучшей идеей здесь или существует более разумный, логичный подход, который можно принять?

На данный момент я очистил данные, удалив все бессмысленные строки (их мало, поэтому их можно просто отбросить). Я написал скрипт для проверки подлинности моего классификатора, поэтому у меня есть метрика для проверки смещения/дисперсии, а также для проверки общей производительности алгоритма.

Куда я иду отсюда? Какие аспекты мне нужно учитывать? Что я здесь думаю?

+1

Бесстыдная самозарядка: http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat- лист-для-scikit.html –

ответ

2

Вы можете использовать некоторые элементы теории. Например:

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

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

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

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

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

Я понимаю из тегов в этом сообщении, что вы использовали классификаторы scikit-learn. В случае, если вы еще не заметили, этот пакет предоставляет мощные инструменты для перекрестной проверки, а также http://scikit-learn.org/stable/modules/cross_validation.html

Смежные вопросы