ste*_*l12 1 machine-learning svm weka libsvm
所以我读了一篇论文,说正确处理你的数据集可以大大提高LibSVM分类的准确性......我正在使用Weka实现,并希望有一些帮助确保我的数据集是最优的.
这是我的(示例)属性:
Power Numeric (real numbers, range is from 0 to 1.5132, 9000+ unique values)
Voltage Numeric (similar to Power)
Light Numeric (0 and 1 are the only 2 possible values)
Day Numeric (1 through 20 are the possible values, equal number of each value)
Range Nominal {1,2,3,4,5} <----these are the classes
Run Code Online (Sandbox Code Playgroud)
我的问题是:我应该应用哪些Weka预处理过滤器来使这个数据集对LibSVM更有效?
请就这些问题以及您认为我可能错过的任何其他问题提出建议......
提前致谢!!
归一化非常重要,因为它影响SVM使用的距离概念.规范化的两种主要方法是:
[0, 1].到目前为止,这是最常用的方法.有必要防止某些输入维度完全支配其他维度.LIBSVM作者在其初学者指南中推荐(附录B为示例).至于处理输入类型:
1,2,3毫不隐晦地限定的不自然的结构.1,2并3暗示了一个狗和鸟比一个更接近猫和鸟这是无稽之谈.必要时,必须在替换输入后进行归一化.
回答你的问题:
我应该规范化和/或标准化电源和电压数据值吗?
是的,将所有(最终)输入尺寸标准化为相同的间隔(包括假人!).
我应该在任何事情上使用Discretization过滤器吗?
没有.
我应该将电源/电压值合并到更少数量的垃圾箱中吗?
不.将它们视为连续变量(例如每个输入一个).
我应该使Light值二进制而不是数字吗?
不,SVM没有二进制变量的概念,并将所有内容都视为数字.所以转换它只会导致内部额外的类型转换.
我应该规范日值吗?这样做甚至有意义吗?
如果要使用1个输入维度,则必须像其他维度一样对其进行标准化.
我是否应该使用Nominal to Binary或Nominal来对其他类别的"Range"类进行过滤?
标称为二进制,使用单热编码.
| 归档时间: |
|
| 查看次数: |
3978 次 |
| 最近记录: |