1

次の nuget パッケージを使用して、C# コードで liblinear の .NET 実装を使用しています: https://www.nuget.org/packages/Liblinear/

ただし、liblinear の readme ファイルでは、x の形式は次のとおりです。

struct problem問題について説明します。

    struct problem
    {
        int l, n;
        int *y;
        struct feature_node **x;
        double bias;
    };

where `l` is the number of training data. If bias >= 0, we assume
that one additional feature is added to the end of each data
instance. `n` is the number of feature (including the bias feature
if bias >= 0). `y` is an array containing the target values. (integers
in classification, real numbers in regression) And `x` is an array
of pointers, each of which points to a sparse representation (array
of feature_node) of one training vector.

For example, if we have the following training data:

    LABEL       ATTR1   ATTR2   ATTR3   ATTR4   ATTR5
    -----       -----   -----   -----   -----   -----
    1           0       0.1     0.2     0       0
    2           0       0.1     0.3    -1.2     0
    1           0.4     0       0       0       0
    2           0       0.1     0       1.4     0.5
    3          -0.1    -0.2     0.1     1.1     0.1

and bias = 1, then the components of problem are:

    l = 5
    n = 6

    y -> 1 2 1 2 3

    x -> [ ] -> (2,0.1) (3,0.2) (6,1) (-1,?)
         [ ] -> (2,0.1) (3,0.3) (4,-1.2) (6,1) (-1,?)
         [ ] -> (1,0.4) (6,1) (-1,?)
         [ ] -> (2,0.1) (4,1.4) (5,0.5) (6,1) (-1,?)
         [ ] -> (1,-0.1) (2,-0.2) (3,0.1) (4,1.1) (5,0.1) (6,1) (-1,?)

ただし、Java 実装を示す例では: https://gist.github.com/hodzanassredin/6682771

problem.x <- [|
                        [|new FeatureNode(1,0.); new FeatureNode(2,1.)|]
                        [|new FeatureNode(1,2.); new FeatureNode(2,0.)|]
                    |]// feature nodes
problem.y <- [|1.;2.|] // target values

つまり、彼のデータセットは次のとおりです。

1 0 1
2 2 0

そのため、彼は liblinear のスパース形式に従ってノードを保存していません。liblinear 実装の x の正しい形式を知っている人はいますか?

4

1 に答える 1