libsvmデータ形式[終了]


31

サポートベクターの分類にlibsvm(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)ツールを使用しています。ただし、入力データの形式については混乱しています。

READMEから:

トレーニングおよびテストデータファイルの形式は次のとおりです。

<label> <index1>:<value1> <index2>:<value2> ...
.
.
.

各行にはインスタンスが含まれ、「\ n」文字で終了します。分類の場合<label>、クラスラベルを示す整数です(マルチクラスがサポートされます)。回帰の場合<label>は、任意の実数のターゲット値です。1クラスのSVMの場合、使用されないため、任意の数にすることができます。このペア<index>:<value>は、特徴(属性)値を与えます<index>。1から始まる整数<value> で、実数です。唯一の例外は、<index>0から始まる事前計算済みカーネル です。事前に計算されたカーネルのセクションを参照してください。インデックスは昇順でなければなりません。テストファイルのラベルは、精度またはエラーの計算にのみ使用されます。不明な場合は、最初の列に数字を入力します。

次の質問があります。

  1. の使用は何<index>ですか?どんな目的に役立ちますか?
  2. 異なるデータインスタンスの同じインデックス値に対応はありますか?
  3. 間にインデックスが欠落/スキップした場合はどうなりますか?

libsvmのパッケージに含まれるデータファイル* heart_scale *は12行目でインデックスが2から始まる<value>ため、質問します。注:パッケージに付属のtools / checkdata.pyツールには、* heart_scale *ファイルが正しいと記載されています。

回答:


23

このリンクは役立つはずです:http : //www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#/Q3 : _Data_preparation

データはまばらな配列/行列形式で保存されると述べました。本質的に、これはゼロ以外のデータのみが保存され、欠落データはすべてゼロ保持値とみなされることを意味します。ご質問:

a)インデックスは、機能/パラメータを区別する方法としてのみ機能します。ハイパースペースに関しては、各コンポーネントを指定するだけです。たとえば、3-D(3フィーチャ)インデックス1,2,3は、x、y、z座標に対応します。

b)ハイパープレーンを構築するとき、これらは座標として機能します。

c)間に1つをスキップする場合、デフォルト値のゼロを割り当てる必要があります。

つまり、+ 1 1:0.7 2:1 3:1は次のように変換されます。

クラス+1にポイント(0.7,1,1)を割り当てます。


4

小さくて速いガイド:

LibSVM形式は、ドキュメントを前処理する必要があることを意味します。使用される分類クラスの数(ほとんどの場合2)と機能空間を知る必要があります。

分類クラスはtrue / falseのようなものです。0,1、...ここでは、整数(例、0,1)に変換する必要があります。

機能空間は、多次元データ用の空間です。各feauture(ベクトル)には、独自のID(インデックス)とその値が必要です。たとえば、1:23.2は、フィーチャー/ディメンション1の値が23.2であることを意味します

<label> <index1>:<value1> <index2>:<value2> ... <indexN>:<valueN>
...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.