LIBSVM数据准备:Excel数据为LIBSVM格式

时间:2016-11-05 09:33:20

标签: libsvm

我想研究如何执行LIBSVM进行回归,而我目前仍然在准备我的数据。目前我有.csv和.xlsx格式的这种形式的数据,我想将其转换为libsvm数据格式。

Current Data

到目前为止,我知道数据应该采用这种格式,以便可以在LIBSVM中使用:

LIBSVM format

根据我读到的内容,对于回归,“label”是目标值,可以是任何实数。

我正在进行电力负荷预测研究。谁能告诉我它是什么?最后,我应该如何组织我的列和行?

1 个答案:

答案 0 :(得分:11)

LIBSVM数据格式由:

给出
  

<标签> < index1之间>:其中值1> <索引2>:其中值2> ... ...

...

如您所见,这形成了一个矩阵[(IndexCount + 1)列,LineCount行]。更准确地说是稀疏矩阵。如果您为每个 index指定一个值,则您有一个密集矩阵,但如果您只指定了一些像<label> <5:value> <8:value>这样的索引,那么只有index 58以及label当然会有自定义值,所有其他值都设置为0。这只是为了简化符号或节省空间,因为数据集可能很大。

对于标签的含义,我引用了ReadMe file

  

&LT;标签&gt;是训练数据的目标值。用于分类,   它应该是一个标识类的整数(多类   支持分类)。对于回归,它是真实的   数。对于单类SVM,它没有被使用,所以可以是任何数字。   是从1开始的整数,&lt; value&gt;是一个真实的数字。指数   必须按升序排列。

如您所见,label是您要预测的数据。 index标记了数据的功能及其value。功能只是一个指标,用于关联或关联目标值,因此可以做出更好的预测。

完全虚构的故事时间:Gabriel Luna(一个完全虚构的角色)想要预测他未来几天的能量消耗。他发现前一天的外部温度是一个很好的指标,因此他选择Temperature作为功能1索引0重要:指数总是从1开始,零有时会导致奇怪的LIBSVM行为。然后,他惊讶地注意到,星期几(星期一到星期日或62)也会影响他的负载,所以他选择它作为第二个功能索引<myLoad_Value> <1:outsideTemperatureFromYesterday_Value> <2:dayOfTheWeek_Value>。 LIBSVM的矩阵行现在具有以下格式:

0.72 1:25 2:0

加布里埃尔·卢娜(他晚上是蝙蝠侠)现在可以在几周内捕获这些数据,这看起来像这样(以千瓦时为单位加载,温度以摄氏度为单位,如上所述):

0.65 1:21 2:1
0.68 2:29 2:2
...
2:0

请注意,由于稀疏矩阵格式,我们可以省略23。这将是您训练LIBSVM模型的训练数据。然后,我们预测明天的负荷如下。你知道今天的温度,我们说1°C,今天是星期二,2,所以明天是0 1:23 2:2。因此,这是与模型一起使用的线或向量:

<label>

在这里,您可以任意设置$(document).ready(function() { $('#searchinputtext').keyup(function() { var tr = $('#videosfromtagstable tbody tr'); //use tr not td if ($(this).val().length >= 2) { var inputdata = $.trim($("#searchinputtext").val()); $('#errmsgnovideos').hide(); var noElemvideo = true; var val = $.trim(this.value).toLowerCase(); el = tr.filter(function() { return this.innerHTML.toLowerCase().indexOf(val) >= 0; }); // <==== closest("tr") removed if (el.length >= 1) { noElemvideo = false; } //now you fadeIn/Out every row not every cell tr.not(el).fadeOut(); el.fadeIn(); if (noElemvideo) if (inputdata !== '') { $('#errmsgnovideos').html('No Results Matched').show(); } else { $('#errmsgnovideos').hide(); } } else { tr.fadeIn(); //show all if length does not match the required number of characters $('#errmsgnovideos').hide(); } }) }); 值。它将被预测值覆盖。我希望这会有所帮助。