我正在使用这个网站http://scikit-learn.org/stable/datasets/(副标题5.5)来创建我的自定义数据集,用于使用scikit执行SVM。我一天的总结:我基本上不知道自己在做什么。
在我的论文中,我想预测股票回报方向,即SVM的输出应该是1(UP)或-1(DOWN)。目前,我正试图用一个随机样本来计算SVM(因为我确实了解教程的工作原理)。
正如上面提到的网站上所说,每一行都采用<label> <feature-id>:<feature-value> <feature-id>:<feature-value>
的形式,我认为我提供的训练集应该采用相同的格式。因此,我在Notepad++中创建了以下训练样本:
<1> <1>:<0>, <1>:<19260800>, <1>:<77.83>
<1> <2>:<-1>, <2>:<20110000>, <2>:<75.78>
<-1> <3>:<1>, <3>:<53306400>, <3>:<76.24>
<1> <4>:<0>, <4>:<61293500>, <4>:<78.00>
<-1> <5>:<-1>, <5>:<42649500>, <5>:<75.91>
例如,第二行:
<1> 意味着股票从前一天开始上涨,<2> 是第二行的数据的<-1> 对于特定公司来说,是当天推特上的负面情绪,<20110000>是当天的库存量,<75.78>是当天调整后的收盘价。
我希望你能理解我想说的话。我希望更多的人能帮助我。
提前感谢!
查看文档中引用的相关链接:
svmlight/libsvm格式的公共数据集:http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/
更快的兼容API的实施:https://github.com/mblondel/svmlight-loader
如果你点击第一个链接,你会发现像这样的示例数据集:
-1 3:1 11:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 3:1 6:1 17:1 27:1 35:1 40:1 57:1 63:1 69:1 73:1 74:1 76:1 81:1 103:1
-1 4:1 6:1 15:1 21:1 35:1 40:1 57:1 63:1 67:1 73:1 74:1 77:1 80:1 83:1
-1 5:1 6:1 15:1 22:1 36:1 41:1 47:1 66:1 67:1 72:1 74:1 76:1 80:1 83:1
-1 2:1 6:1 16:1 22:1 36:1 40:1 54:1 63:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 2:1 6:1 14:1 20:1 37:1 41:1 47:1 64:1 67:1 73:1 74:1 76:1 82:1 83:1
所以你不需要括号,<>
。只需在文件中填充一个数字标签,以及用冒号分隔的数字对。对之间没有逗号。
根据文档,您可以使用加载数据集
>>> from sklearn.datasets import load_svmlight_file
>>> X_train, y_train = load_svmlight_file("/path/to/train_dataset.txt")