2016-03-31 12 views
1

Ben SVM ışık ve SVM rütbe yürütmek istiyoruz sağ endeksi başarısız oldu.Python sklearn.datasets.dump_svmlight_file çıkışına <p></p> yüzden SVM ışığın biçime benim verilerin işlenmesi için gereken sütuna

Ama büyük bir sorun vardı ....

Benim Python kodları

aşağıdaki gibidir: enter image description here

:

import pandas as pd 
import numpy as np 
from sklearn.datasets import dump_svmlight_file 

self.df = pd.DataFrame() 
self.df['patent_id'] = patent_id_list 
self.df['Target'] = class_list 
self.df['backward_citation'] = backward_citation_list 
self.df['uspc_originality'] = uspc_originality_list 
self.df['science_linkage'] = science_linkage_list 
self.df['sim_bc_structure'] = sim_bc_structure_list 
self.df['claim_num'] = claim_num_list 
self.qid = dataset_list 

X = self.df[np.setdiff1d(self.df.columns, ['patent_id','Target'])] 
y = self.df.Target 

dump_svmlight_file(X,y,'test.dat',zero_based=False, query_id=self.qid,multilabel=False) 

çıktı dosyası "test.dat" şuna benzer olduğunu Ancak gerçek veriler şu şekilde gözüküyor: enter image description here

Yanlış bir dizin aldım ....

örneğin ilk örneğini alın, sütununun 1 değeri 7'dir ve sütunun değerleri 2 ~ 4 sıfırdır, kolona 5 değeri 2 ....

Yani benim beklenen sonuç bakmak olduğunu böyle:

1 qid: 1 1: 7 5: 2

ancak çıkış dosyası sütun dizini .... tamamen yanlış

ve ne yazık ki ... Ben çözemiyorum sorun nerede oluşur ....

Bu sorunu uzun bir süre için gideremiyorum ....

Yardımlarınız için teşekkür ederiz!

cevap

2

Veri yapısını değiştirdim, dizi benzeri girdi oluşturmak için np.array kullanıyorum. Son olarak, ben başarılıyım!

bir numpy diziye yükleme ilgileniyorsanız
0

, deneyin: 2 hedef sütunun endeksidir

X = clicks_train[:,0:2] 
y = clicks_train[:,2]