我正在使用这个网站 http://scikit-learn.org/stable/datasets/(副标题5.5)来创建我的自定义数据集,以便使用scikit进行SVM操作。今天的总结:我基本上不知道自己在做什么。
为了我的论文,我想预测股票回报方向,即SVM的输出应该是1(上涨)或-1(下跌)。目前,我正在尝试使用随机样本来理解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>是当天特定公司的负面Twitter情绪,<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")