3

2 つのデータ フレームがあります。L 行でデータを学習し、T 行でデータをテストします。

要素間の距離 (ユークリッド、マンハッタン、コサインなど) を含む L*T 行列を計算したいと考えています。

これが私の見解です:

distance2 <- function (x1, x2) {
            temp <- x1 - x2
            sum(temp * temp)
}

m <- matrix(0,nrow(learnData),nrow(testData))
for(td in 1:nrow(testData)) {
    for(ld in 1:nrow(learnData)) {
        m[ld,td] <- distance2(testData[td,],learnData[ld,])                 
    }
}

これは、よりコンパクトな「R」の方法で実行できると思います。何か案は?ありがとう。

4

1 に答える 1

5

次の 2 つのオプションが思い浮かびます。

  1. これらの非類似度係数の多くが既にコード化されており、2 つのデータ フレームに対して個別に計算できるプロキシパッケージを使用します。
  2. 2つのデータフレームでユークリッドとマンハッタンの測定値を計算できる関数を備えたアナログパッケージ(ただし、コサイン距離ではありませんdistance()
于 2012-09-16T21:16:50.633 に答える