Использование SVM для прогнозирования текста с меткой

У меня есть данные в CSV-файл в следующем формате

Name     Power   Money
Jon      Red     30
George   blue    20
Tom      Red     40
Bob      purple  10

Я рассматриваю такие значения, как "jon", "red" и "30" в качестве входных данных. Каждый вход представляет собой метку. Например, входные данные [jon,george,tom,bob] имеют метку "name". метка "сила". Это в основном то, как у меня есть данные обучения. У меня есть куча значений, каждое из которых сопоставлено с меткой.

Теперь я хочу использовать svm для обучения модели, основанной на моих данных обучения, для точного определения с учетом нового ввода, какова ее правильная метка. Так, например, если введено "444", модель должна быть достаточно умной, чтобы классифицировать ее как метку "Деньги".

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

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

1 ответ

Решение

С тем, как сформулирован ваш текущий вопрос, вы не имеете дело с типичной проблемой машинного обучения. В настоящее время у вас есть данные по столбцам:

Name     Power   Money
Jon      Red     30
George   blue    20
Tom      Red     40
Bob      purple  10

Если пользователь теперь вводит "Jon", вы знаете, что это будет тип "Name", с помощью простого поиска по хеш-карте, например:

hashmap["Jon"] -> "Name"

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

Name     Power   Money  Bought_item
Jon      Red     30     yes
George   blue    20     no
Tom      Red     40     no
Bob      purple  10     yes

Мы могли бы построить модель для прогнозирования Bought_item, используя функции Name, Power и Money, используя SVM.

Ваша проблема должна выглядеть так:

Feature1 Feature2 Feature3 Category
1.0      foo      bar      Name
3.1      bar      foo      Name
23.4     abc      def      Money
22.22    afb      dad      Power
223.1    dad      vxv      Money

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

Редактировать:

Так создайте это так:

Name     Power   Money   Label
Jon      Red     30      Foo
George   blue    20      Bar
Tom      Red     40      Foo
Bob      purple  10      Bar

OneHotEncode Name и Power, так что теперь у вас есть переменная для каждого имени, которая может быть 0/1.

Стандартизируйте деньги так, чтобы они находились в диапазоне приблизительно от -1/1.

LabelEncode ваших ярлыков, чтобы они были 0,1,2,3,4,5,6 и так далее.

Используйте классификатор "Один против всех", http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html.

Другие вопросы по тегам