Rで2つの変数と2つのグループを使用して線形判別分析を実行しています。つまり、
ldares <- lda(dat[,2:3], grouping=dat[,1])
次に、グループを分ける決定限界の式を求めたいと思います。線形判別式の係数を次のように出力できることを知っています。
coef(ldares)
ただし、決定範囲は次のように記述されるとします。
a*v1 + b*v2 + c = 0,
バイアスまたはしきい値の重みcを取得するにはどうすればよいですか?
Rで2つの変数と2つのグループを使用して線形判別分析を実行しています。つまり、
ldares <- lda(dat[,2:3], grouping=dat[,1])
次に、グループを分ける決定限界の式を求めたいと思います。線形判別式の係数を次のように出力できることを知っています。
coef(ldares)
ただし、決定範囲は次のように記述されるとします。
a*v1 + b*v2 + c = 0,
バイアスまたはしきい値の重みcを取得するにはどうすればよいですか?
事前の重みが与えられていない場合、c = 0であり、判別スコアは事前を設定するケースの分布に基づいていることがわかると思います。暗黙のc=0の仮定を使用したスコアの構築により、アイリスデータセットを使用した予測で予想される分割が生成されることがわかります。
require(MASS)
ldares <- lda(iris[ iris[,5] %in% c("setosa", "versicolor"),2:3],
grouping=iris[iris[,5] %in% c("setosa", "versicolor") ,5])
scores <- with( iris[ iris[,5] %in% c("setosa", "versicolor") , 2:3],
cbind(Sepal.Width, Petal.Length) %*% coef(ldares) )
with( iris[ iris[,5] %in% c("setosa", "versicolor") , c(2:3, 5)],
plot(Sepal.Width, Petal.Length, col=c("black", "red")[1+(scores>0)]) )
LDA は中心変数の線形結合であることに注意してください。したがって、識別関数は実際には次のようになります。
\Sigma [w * (x - mean(x))] > 0
したがって:
\Sigma [w * x] > \Sigma w * mean(x)
したがって、しきい値は \Sigma w * mean(x) です。残念ながら、LDA はデータセット全体の平均 (x) を報告せず、2 つのグループの平均のみを報告します。しかし、これにより、かなり直感的な方法でしきい値を計算できます。
その結果が LDA の結果であると仮定すると、しきい値は 2 つのクラスの重心への応答の中間になります。
> `sum( result$scaling * result$means[2,] + result$scaling * result$means[1,] )/2`
ps 元の質問w1*a1 + w2*a2 + c = 0
では、しきい値は -c であることに注意してください