2016-06-26 3 views
2

Если вы используете библиотеку, такую ​​как scikit-learn, как назначить больший вес некоторым функциям ввода для классификатора типа SVM? Это что-то люди делают или есть другое решение моей проблемы?Как уделить больше внимания определенным функциям в обучении машинам?

+0

Зачем вам это нужно? Хорошие алгоритмы уже делают это автоматически и ситуативно. – MSalters

+0

Посмотрите на TF-IDF - он весит – Paparazzi

+0

@Paparazzi tfidf не относится к весовым функциям, это скорее о «раздавливании» слишком быстро растущих, поэтому вы получаете разумные масштабы. Это не приводит к тому, что определенная функция является «более важной», если вы не используете очень специфический классификатор сверху (например, для деревьев решений, tfidf вообще не имеет значения «важность») – lejlot

ответ

3

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

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

+0

Спасибо за ответ, я заметил в scikit-learn, у SVC-классификатора есть вход «sample_weight», где вы можете придать большее значение определенным классам. Можете ли вы привести пример использования этой функции? – 28r

+1

sample_weight - это весовые конкретные ** образцы ** (экземпляры, точки, объекты), а не целые классы (хотя он может быть использован для этой цели). Это используется, например, для реализации методов повышения, которые итеративно имеют избыточный вес, которые ранее были неправильно классифицированы. Он также используется для избыточного веса классов меньшинства в несбалансированной классификации. Однако, опять же, это другой вид взвешивания, чем тот, который в вопросе – lejlot

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