0

スパム分析を行うために、e1071 の Naive Bayes Learner を使用しようとしています。これは、モデルをセットアップするために使用するコードです。

library(e1071)
emails=read.csv("emails.csv")
emailstrain=read.csv("emailstrain.csv")
model<-naiveBayes(type ~.,data=emailstrain)

「ステートメント」とタイプの両方を持つ 2 組の電子メールがあります。1 つはトレーニング用で、もう 1 つはテスト用です。私が走るとき

model

生の出力を読むだけで、ステートメントが実際にスパムである場合、ステートメントがスパムである可能性が0パーセントを超える可能性があり、ステートメントがそうでない場合にも同じことが当てはまります。ただし、モデルを使用してテストデータを予測しようとすると

table(predict(model,emails),emails$type)

わかりました

    ham  spam
ham 2086 321
spam 2   0

これは間違っているようです。また、トレーニング セットを使用してデータをテストしてみました。この場合、非常に良い結果が得られるか、少なくともモデルで観察されたものと同じくらい良い結果が得られるはずです。しかし、それは与えた

    ham  spam
ham 2735 420
spam 0   6

これは、テスト セットを使用した場合よりもわずかに優れています。予測機能の動作に何か問題があるに違いないと思います。

データ ファイルの設定方法と内容の例:

type,statement
ham,How much did ur hdd casing cost.
ham,Mystery solved! Just opened my email and he's sent me another batch! Isn't he a sweetie
ham,I can't describe how lucky you are that I'm actually awake by noon
spam,This is the 2nd time we have tried to contact u. U have won the £1450 prize to claim just call 09053750005 b4 310303. T&Cs/stop SMS 08718725756. 140ppm
ham,"TODAY is Sorry day.! If ever i was angry with you, if ever i misbehaved or hurt you? plz plz JUST SLAP URSELF Bcoz, Its ur fault, I'm basically GOOD"
ham,Cheers for the card ... Is it that time of year already?
spam,"HOT LIVE FANTASIES call now 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870..k"
ham,"When people see my msgs, They think Iam addicted to msging... They are wrong, Bcoz They don\'t know that Iam addicted to my sweet Friends..!! BSLVYL"
ham,Ugh hopefully the asus ppl dont randomly do a reformat.
ham,"Haven't seen my facebook, huh? Lol!"
ham,"Mah b, I'll pick it up tomorrow"
ham,Still otside le..u come 2morrow maga..
ham,Do u still have plumbers tape and a wrench we could borrow?
spam,"Dear Voucher Holder, To claim this weeks offer, at you PC please go to http://www.e-tlp.co.uk/reward. Ts&Cs apply."
ham,It vl bcum more difficult..
spam,UR GOING 2 BAHAMAS! CallFREEFONE 08081560665 and speak to a live operator to claim either Bahamas cruise of£2000 CASH 18+only. To opt out txt X to 07786200117

私は本当に提案が大好きです。手伝ってくれてどうもありがとう

4

1 に答える 1

2

実際に予測機能は問題なく機能します。誤解しないでほしいのですが、問題はあなたがしていることにあります。この式を使用してモデルを構築しています:type ~ .ですね。式の左辺に何があるかは明らかなので、右辺を見てみましょう。

あなたのデータでは、変数しかありません-typeそして、従属変数でstatementあるため、独立変数としてカウントされるのは. これまでのところ、すべてが明らかです。typestatement

ベイジアン分類器を見てみましょう。事前確率は明らかですよね?条件付き確率はどうですか?分類子の観点からは、カテゴリ変数 (文) は 1 つしかありません。分類子ポイントの場合、それはラベルのリストにすぎません。それらはすべて一意であるため、事後確率はアプリオリに近くなります。

言い換えれば、新しい観察結果を得たときに言えることは、それがスパムである確率は、列車セットでメッセージがスパムである確率と等しいということだけです。

機械学習の方法を使用して自然言語を処理する場合は、最初にデータを前処理する必要があります。問題によっては、ステミング、レンマタイゼーション、n-gram 統計の計算、tf-idf などを意味する場合があります。トレーニング分類器は最後のステップです。

于 2013-09-25T20:45:18.950 に答える