2016-03-31 15 views
1

の右のインデックスに失敗しました。Pythonのsklearn.datasets.dump_svmlight_fileので、私はSVM光の形式に私のデータを処理する必要があり、出力に</p> <p>を私はSVM光とSVMランクを実行したい列

しかし、私は

私のPythonのコードは以下のとおりです....大きな問題があった:

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) 

出力ファイル "TEST.DAT" は次のようになります: enter image description here

しかし、実際のデータは次のようになります。 enter image description here

私は間違ったインデックスを持っています....

は、例えば最初のインスタンスを取り、列1の値が7であり、列2〜4の値はゼロであり、列5の値が2である....

だから、私の期待される結果は見ています

1 QID:1:1:7 5:次のように完全に間違っている....

と、残念ながら2

が、出力ファイルの列インデックス...私は把握することはできませんどこに問題が発生している...

私は長い間この問題を解決できません....

ありがとうございます!

答えて

2

私はデータ構造を変更し、np.arrayを使用して配列のような入力を生成します。 最後に、私は成功する!

あなたがnumpyの配列へのロードに興味があるなら
0

、試してみてください。2は、ターゲット列のインデックスです

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

関連する問題