2012-05-05 11 views
2

FNNパッケージのknn.cvのデータセットでk-最近傍アルゴリズム(クロスバリデーションあり)を使用しているときに問題が発生しました。 データセットは、583属性のメール件数が4601件、emails(numerical, range [0,100])の文字または語句頻度に応じて57件、最後がスパム(値1)またはハム(値0)であることを示します。データセットに適用した後でknn.cv(R)の結果を解釈します

trainとcl変数を指定して10のネイバーを使用した後、パッケージを実行すると、使用方法がわからないすべての電子メールのリストが各列に7.4032というように表示されます。私はスパムの割合を見つけ、パッケージが正しい割合で分類して比較する必要があります。これらの結果をどのように解釈すればよいですか?

答えて

3

これは実際には宿題であれば、データはあなたが(正確に)同じタイトルでよく知られている本を伴うElemStatLearnパッケージに設定されたスパムデータをマッチを記述していることを考えると、私は思ったんだけど。そうであればOKですが、質問に宿題タグを追加する必要があります。

ここにいくつかのポインタがあります。

関数knn.cvのドキュメントでは、k個の最近傍の距離とインデックスを「属性」として分類ベクトルを返します。

out <- knn.cv(spam[,-58],spam[,58],k = 10) 

オブジェクトoutは次のようにソートのになります:私はこれが実行したときにそう

> head(out) 
[1] spam spam spam spam spam email 
Levels: email spam 

他の値を、あなたは属性として「隠れ」の一種であるを参照してください、しかし、あなたが見ることができる彼らstrが使用している:

> str(out) 
Factor w/ 2 levels "email","spam": 2 2 2 2 2 1 1 1 2 2 ... 
- attr(*, "nn.index")= int [1:4601, 1:10] 446 1449 500 5 4 4338 2550 4383 1470 53 ... 
- attr(*, "nn.dist")= num [1:4601, 1:10] 8.10e-01 2.89 1.50e+02 2.83e-03 2.83e-03 ... 

あなたはこのような何かを経由して、これらの追加の属性にアクセスすることができます:

nn.index <- attr(out,'nn.index') 
nn.dist <- attr(out,'nn.dist') 

これらのオブジェクトは両方とも、4601×10の次元の行列になることに注意してください。行番号)と、それぞれの距離を示します。

最後のビットは、おそらくtable()の機能が便利であり、prop.table()であることがわかります。

+0

よろしくお願い致します。私はそれを試みます。そして、これは私の論文の一部です。私は宿題について知りませんでした。私は今それを修正しました。 –

+0

Yeayyyyはたくさんの友達に感謝します。魅力のように働いて、table()と一緒に私は必要な結果を得ました。 –

関連する問題