LINUX.ORG.RU

LibLinear и bias: как он работает на самом деле?

 liblinear


1

2

Шалом, православные! Есть тонкий момент в LibLinear. При создании обучающей задачи можно использовать пополненное пространство, установив параметр bias, при котором то ли LibLinear будет считать, что я дописал в каждый фич-вектор по одной дополнительной фиче с одним и тем же весом, то ли мне надо самому дописать в каждый фич-вектор по одной такой фиче, чтобы всё работало корректно.

В манах говорят примерно так, но смутные сомнения мучают всё равно.

 
    struct problem describes the problem:

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

    where `l' is the number of training data. [b]If bias >= 0, we assume
    that one additional feature is added to the end of each data
    instance.[/b] `n' is the number of feature (including the bias feature
    if bias >= 0). `y' is an array containing the target values. 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,?)[/i]

Таки как же всё-таки делать правильно?



Последнее исправление: Yak (всего исправлений: 2)

During the usual SVM biclassification learning process, the bias is chosen a posteriori as the value halfway between separating hyper- planes.

задание биаса сокращает число необходимых опорных векторов, сокращает сложность счета.

Например вот это можно прочитать (заметки пользователя данной либы на тему вычисления в ней биаса) http://people.eecs.ku.edu/~bquanz/documents/OffsetProbSVM.pdf

или вот http://www.dice.ucl.ac.be/Proceedings/esann/esannpdf/es2004-11.pdf

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.