机器学习名义数据

时间:2018-08-03 10:38:51

标签: machine-learning svm

我正在使用svm进行机器学习。我尝试向svm提供数据,但是我的数据是名义数据,我不知道如何转换它。

我的数据如下:

--------------------------------------------------
Item | Productname | Label name | Packaging |etc...
--------------------------------------------------
1 | Battery Micro 4 | Batt. Micro | Folding|...
--------------------------------------------------
2 | Battery Micro 8 | Batt. Micro | Blister|...
--------------------------------------------------
3 | button cell Battery | btn Batt. | Blister | ...
--------------------------------------------------

我想训练我的svm以识别“ Battery Micro 4”是“ Productname”列
“ Batt。Micro”是“标签名称”列,“折叠”是“包装”列,依此类推。

像onehot这样的方法似乎对我的情况不利。 项目的数量会在一段时间后增加。

有人知道一种将这些数据转换为数值而信息损失更少的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

由于您的数据没有自然顺序,因此使用整数编码将毫无用处。下一个选项将是一种热编码,但是正如您所说的,项目数可能会增加,我们也可以丢弃此编码,下一个选项是获取对它们进行排序的所有离散值的值计数,然后从从最小到最大,在执行此步骤时,您还应注意离散值的基数,如果您的离散元素的基数<1%,则最好为这些值创建一个特殊类别,然后将所有此类值添加到该类别,因此,在测试时间内到达的任何新类别都应分配给该类别,因为其基数肯定会非常低。