我想研究如何执行LIBSVM进行回归,而我目前仍然在准备我的数据.目前我有.csv和.xlsx格式的这种形式的数据,我想将其转换为libsvm数据格式.
到目前为止,我知道数据应该采用这种格式,以便可以在LIBSVM中使用:
根据我读到的内容,对于回归,"label"是目标值,可以是任何实数.
我正在进行电力负荷预测研究.谁能告诉我它是什么?最后,我应该如何组织我的列和行?
tha*_*guy 12
LIBSVM数据格式由下式给出:
<label> <index1>:<value1> <index2>:<value2>
......
......
如您所见,这形成了一个矩阵[(IndexCount + 1)列,LineCount行].更确切地说是稀疏矩阵.如果指定的值每 index,你有一个密集的矩阵,但如果你只指定了几个指标一样<label> <5:value> <8:value>,只有指数5和8课程和label将有一个自定义值,所有其他值都设置为0.这只是为了简化符号或节省空间,因为数据集可能很大.
对于标签的meanig,我引用了ReadMe文件:
<label>是训练数据的目标值.对于分类,它应该是一个标识类的整数(支持多类分类).对于回归,它是任何实数.对于单类SVM,它没有被使用,所以可以是任何数字.是从1开始的整数,<value>是实数.指数必须按升序排列.
如您所见,这label是您要预测的数据.该index标记的功能,您的数据和其value.特征只是将目标值与之关联或关联的指标,因此可以进行更好的预测.
完全虚构的故事时间:Gabriel Luna(一个完全虚构的角色)想要预测他未来几天的能量消耗.他发现,前一天的外部温度是一个很好的指标,所以他选择Temperature索引1作为特征.重要提示:索引始终从1开始,零有时会导致奇怪的LIBSVM行为.然后,他令人惊讶的声明,即(周一至周日或星期几0来6)也影响到他的负荷,所以他选择它作为第二功能与指标2.LIBSVM的矩阵行现在具有以下格式:
<myLoad_Value> <1:outsideTemperatureFromYesterday_Value> <2:dayOfTheWeek_Value>
Gabriel Luna(他晚上是蝙蝠侠)现在可以在几周内捕获这些数据,这可能看起来像这样(以千瓦时为单位加载,温度以°C为单位,如上所述):
0.72 1:25 2:0
0.65 1:21 2:1
0.68 2:29 2:2
...
请注意,2:0由于稀疏矩阵格式,我们可以省略.这将是您训练LIBSVM模型的训练数据.然后,我们预测明天的负荷如下.你知道今天的温度,让我们说23°C,今天是星期二,也就是1明天2.因此,这是与模型一起使用的线或向量:
0 1:23 2:2
在这里,您可以<label>任意设置值.它将被预测值覆盖.我希望这有帮助.