libsvm ./svm-scale 歯抜け スケーリング

自分用メモ。

support vector machineの実行コードlibsvmにて、
./svm-paramでスケーリングするとscaling_paramが得られる。
全訓練データがある次元で0をとるとき、
その次元はparamに書かれない。paramが歯抜けになる。
そこに"dim 0 1"をはさみこむコード。python

f=open('scale_param_dog','r')
g=open('scale_param_dog2','w')
D=2940

'''
correct scaling parameter
'''
c=1
for s in f:
  sep=s.split()
  sep0=int(sep[0])

  while c!=sep0:
    g.write(str(c)+' 0 1\n')
    c+=1
  g.write(s)
  c+=1