2012-02-10 23 views
3

OpenCVの機械学習アルゴリズムは、CSV形式で読み取られたデータを使用するように見えます。例えばthis cpp fileを参照してください。データは、次のコードを使用してOpenCVの機械学習クラスCvMLDataに読み込まれます。OpenCVマシン学習アルゴリズムのCSV形式

CvMLData data; 
data.read_csv(filename) 

しかし、csvファイルのために必要な形式上の任意の容易に入手できるドキュメントがあるように表示されません。誰もcsvファイルをどのように整理すればよいか知っていますか?

他の(Opencv以外の)プログラムでは、トレーニング例ごとに行があり、クラスラベルを示す整数または文字列で始まる傾向があります。

+0

[this](http://www.opencv.org.cn/opencvdoc/2.3.1/html/modules/ml/doc/mldata.html)を参照してください。また、導入の説明に加えて、数値/カテゴリ値の詳細についてはCvMLData :: read_csvを参照してください。 – fotNelton

+0

ありがとう、私はそれを読んだが、それはいくつかの洞察を与えるが、本当に必要なファイル形式、特にクラスラベルの各行の位置、クラスラベル(整数、文字列等)、特徴ベクトルフォーマット等 –

答えて

2

私はsource for that class、特にstr_to_flt_elem機能、およびclass documentationを読めば、私は、ファイル内の個々の項目のための有効なフォーマットであると結論:strod

  • により、二重に解析することができ

    1. 何か欠損値を表す疑問符(?)または空文字列
    2. 倍精度文字を解析しない文字列。

    項目1と2は機能にのみ有効です。アイテム3でマッチしたものはクラスラベルとみなされ、アイテムの順序は重要ではないと推測できます。 read_csv関数は、csvファイル内の各列に自動的に正しい型を割り当て、set_response_indexでラベルを上書きできます(必要な場合)。区切り文字を使用すると、既定値(、)を使用するか、またはset_delimiter(10進数を使用しない限り)のread_csvを呼び出す前に好きな値に設定することができます。

    だから、これはポイント当たり3つの機能を持つ3つのクラスで6つのデータポイントのために、例えば動作するはずです:

    A,1.2,3.2e-2,+4.1 
    A,3.2,?,3.1 
    B,4.2,,+0.2 
    B,4.3,2.0e3,.1 
    C,2.3,-2.1e+3,-.1 
    C,9.3,-9e2,10.4 
    

    あなたが望む任意の列にテキストラベルを移動し、あるいは複数のテキストラベルを持つことができます。

  • 関連する問題