Использование 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.