【问题标题】:Scikit SVM: create training datasetScikit SVM:创建训练数据集
【发布时间】:2015-05-04 13:38:09
【问题描述】:

我正在使用这个站点 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>

例如第二行:

表示股票从前一天开始上涨, 是第二行的数据, 是特定公司当天的负面 Twitter 情绪, 是当日股票成交量,为当日调整收盘价。

我希望你明白我想说什么。我希望更多的人可以帮助我。

提前致谢!

【问题讨论】:

    标签: python machine-learning scikit-learn svm


    【解决方案1】:

    看看the docs中引用的相关链接:

    svmlight / libsvm 格式的公共数据集:http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/

    更快的 API 兼容实现:https://github.com/mblondel/svmlight-loader

    如果您点击第一个链接,您会找到example data sets,例如this one

    -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 
    

    所以你不需要括号,&lt;&gt;。只需用数字标签填充文件, 以及由冒号分隔的数字对。对之间没有逗号。

    Per the docs,然后可以加载数据集

    >>> from sklearn.datasets import load_svmlight_file
    >>> X_train, y_train = load_svmlight_file("/path/to/train_dataset.txt")
    

    【讨论】:

    • 成功了!对于那些将来遇到同样问题的人:按照上面发布的内容 + feature-id 不是指您的“实例”(即行)的 id,而是指您的功能的 id(就像名字所说的那样)(即您要解决的相应列)
    猜你喜欢
    • 2015-08-14
    • 2014-05-18
    • 2014-04-02
    • 2020-06-22
    • 2017-06-21
    • 2013-10-31
    • 2013-04-14
    • 2013-07-04
    • 2012-02-21
    相关资源
    最近更新 更多