回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是python新手,我正在尝试使用libsvm。我试图在grid.py的帮助下进行交叉验证。我从数据库中获取数据,所以它不是稀疏的。是否有任何方法可以按照grid.py中的数据格式的要求将其转换为稀疏格式。文件中规定数据集应采用以下格式:</p>
<pre><code><label> <index1>:<value1> <index2>:<value2> ...
</code></pre>
<p>我尝试使用svm_训练,并借助svm_参数生成模型。</p>
<pre><code>y,x=[location_list,data_list]
prob=svm_problem(y,x)
param=svm_parameter('-t 2')
model=svm_train(prob,param)
</code></pre>
<p>这里是我的训练数据格式</p>
<pre><code> location_list=[8143L,8163L....]
data_list=[[ -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
-59L....],[-62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
-59L....],......]
</code></pre>
<p>我尝试在grid.py中将prob作为数据集传递,但它说找不到数据集,所以可能应该将其写入文件中。或者有什么方法可以将prob变量作为数据集传递给grid.py。</p>
<p>我可以按照上面或下面显示的格式获取我的培训数据:</p>
<pre><code> [8143L, -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
-59L,...]
[8163L, -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
-59L...]
...................
</code></pre>
<p>其中,前8143和8163是标签(类),其余是功能。所以我的问题是:</p>
<p>1)如何将此数据集转换为稀疏格式并将其保存在文件中以传递给grid.py?</p>
<p>2)我可以将prob变量保存在文件中吗?</p>
<p>3)我可以直接在grid.py中传递prob变量而不将其保存到文件中吗?</p>