前提・実現したいこと
私は、機械学習の勉強を独学で6月から勉強し始めました。
そこでSickit-learnのMultinominal NaiveBayesを用いて、テキストの作成者予測をしています。
勉強する中で、トレーニングデータとテストデータについて1つ気になることがあるので質問させてください。
私は現在、表2の???が誰かを予測しようとしています。
表2のテストデータには表1のトレーニングデータに含まれない単語(にんじん、だいこん...)も存在します。
トレーニングデータにない言葉がテストデータに出てきた時、スムージングを使用するとして、
トレーニングデータにあり、テストデータに存在しない言葉が出てきた時、
存在しない分のテストデータの次元を増やして、トレーニングデータの次元数と揃えるべきなのでしょうか。
(下記の表を使用していうと、表2にリンゴやバナナという次元を加える処理をしてから予測を行う)
それとも、このまま何にも処理をせず、表1と表2のデータをそのまま使用して予測することができるのでしょうか。
表1 トレーニングデータ
|名前 |リンゴ|バナナ|ブドウ|パイン|イチゴ|
|さとし | 0.2 | 0.1 | 0.1 | 0.4 | 0.2 |
|ひろき | 0.3 | 0.3 | 0.0 | 0.2 | 0.2 |
|ひとみ | 0.5 | 0.1 | 0.2 | 0.1 | 0.1 |
表2 テストデータ
|名前 |にんじん|だいこん|いも|イチゴ|
|??? | 0.2 | 0.6 | 0.1 | 0.2 |
試したこと
インターネットで調べてみても、よくわからず独学では限界があると思い質問させていただきました。
テストデータは未知のテキストであるという前提なので、トレーニングデータとの次元数の違いや言葉(リンゴなど)の違いも当然あります。このような場合の処理をどうするのかということが分かりません•••
補足情報(FW/ツールのバージョンなど)
トレーニングデータ、テストデータはC#を用いて入力されたテキストからそれぞれcsvファイルを作成し,
そのファイルを使用してPythonでテキスト作成者予測をしています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。