使用 SVM 预测带标签的文本
Using SVM to predict text with label
我在 csv 文件中有以下格式的数据
Name Power Money
Jon Red 30
George blue 20
Tom Red 40
Bob purple 10
我认为像 "jon"、"red" 和 "30 这样的值作为输入。每个输入作为标签。例如输入 [jon,george,tom,bob] 有标签 "name"。输入 [red,blue,purple] 有标签 "power"。这基本上就是我拥有训练数据的方式。我有一堆值,每个值都映射到一个标签。
现在我想使用 svm 根据我的训练数据训练模型,以准确识别给定的新输入,它的正确标签是什么。因此,例如,如果提供的输入是“444”,模型应该足够聪明,可以将其归类为 "Money" 标签。
我安装了py,也安装了sklearn. I have completed the following tutorial。我只是不确定如何准备输入数据来训练模型。
此外,我是机器学习的新手,如果我说的话听起来有误或奇怪,请指出,因为我很乐意学习正确的内容。
根据您当前问题的表述方式,您处理的不是典型的机器学习问题。目前,您有按列数据:
Name Power Money
Jon Red 30
George blue 20
Tom Red 40
Bob purple 10
如果用户现在输入 "Jon",通过简单的哈希映射查找,您知道它将是 "Name" 类型,例如:
hashmap["Jon"] -> "Name"
人们说这不是机器学习问题的主要原因是您的 "categorisation" 或 "prediction" 是由您的列名定义的。相反,机器学习问题(通常)将预测一些响应变量。例如,假设您问的是:
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 名称和功率,因此现在每个名称都有一个变量,可以是 0/1。
标准化货币,使其范围大约在 -1/1 之间。
LabelEncode 您的标签,使它们成为 0、1、2、3、4、5、6 等等。
使用一对多分类器,http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html。
我在 csv 文件中有以下格式的数据
Name Power Money
Jon Red 30
George blue 20
Tom Red 40
Bob purple 10
我认为像 "jon"、"red" 和 "30 这样的值作为输入。每个输入作为标签。例如输入 [jon,george,tom,bob] 有标签 "name"。输入 [red,blue,purple] 有标签 "power"。这基本上就是我拥有训练数据的方式。我有一堆值,每个值都映射到一个标签。
现在我想使用 svm 根据我的训练数据训练模型,以准确识别给定的新输入,它的正确标签是什么。因此,例如,如果提供的输入是“444”,模型应该足够聪明,可以将其归类为 "Money" 标签。
我安装了py,也安装了sklearn. I have completed the following tutorial。我只是不确定如何准备输入数据来训练模型。
此外,我是机器学习的新手,如果我说的话听起来有误或奇怪,请指出,因为我很乐意学习正确的内容。
根据您当前问题的表述方式,您处理的不是典型的机器学习问题。目前,您有按列数据:
Name Power Money
Jon Red 30
George blue 20
Tom Red 40
Bob purple 10
如果用户现在输入 "Jon",通过简单的哈希映射查找,您知道它将是 "Name" 类型,例如:
hashmap["Jon"] -> "Name"
人们说这不是机器学习问题的主要原因是您的 "categorisation" 或 "prediction" 是由您的列名定义的。相反,机器学习问题(通常)将预测一些响应变量。例如,假设您问的是:
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 名称和功率,因此现在每个名称都有一个变量,可以是 0/1。
标准化货币,使其范围大约在 -1/1 之间。
LabelEncode 您的标签,使它们成为 0、1、2、3、4、5、6 等等。
使用一对多分类器,http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html。