2

大規模なデータセットに効率的な R の LiblineaR ライブラリを使用したいと考えています。(機能選択のために重量にl1-normを使用したいのですが、この質問には関係ありません)。私が観察したのは、クラス ラベルが変更されても、重みは変更されないということです。以下に例を示します。

x <- rbind(cbind(rnorm(100),rnorm(100)), cbind(rnorm(100,3), rnorm(100,3)))
y <- c(rep(1,100), rep(-1,100))
m <- LiblineaR(x,y)
m$W
       W1        W2    Bias
[1,] -1.238046 -1.437913 3.86309
y2 <- c(rep(-1,100), rep(1,100))
m2 <- LiblineaR(x,y2)
m2$W
       W1        W2    Bias
[1,] -1.238046 -1.437913 3.86309

したがって、ラベルを反転した後でも、重みは同じままです。これは機能の選択に問題があります。

これが事実である理由はありますか?

ライブラリ e1071 の svm が使用されている場合、(カスタム関数を使用して計算された) 主な重みは期待どおりに反転します。

更新: liblinearの c++ 実装で同じ例を確認したところ、結果の重みは期待どおりに符号を反転させました。

4

0 に答える 0