1

私はモデルを訓練するために使用しなければならない要素である20列の訓練データセットを持っています。予測と提出のための私のモデル。列車と試験データの異なる因子レベルの取り扱い

私は、カテゴリ(変数)のほとんどは、トレーニング中に異なるレベルを持っている初期データ探索を行うと、私たちはすべてのカテゴリvariables.To私の落胆を扱っているので、単に好奇心から、訓練データとテストデータレベルのレベルを確認したとテストデータセット。例えば

table(train$cap.shape) #training data column levels 
    b c f k x 
196 4 2356 828 2300 

table(test$cap.shape) #test data 

b f s x 
256 796 32 1356 

ここで私は、カテゴリの追加のテストデータセットで、どのように私はこれらのケースを扱うことができている、訓練中のCの余分なカテゴリが非常に低いので、私はそれをマージすることを考えていましたその分布が従属変数とどのように関係しているかに基づいて、他の要因との因数を計算しますが、私はテストで余分なレベルを処理する方法に固執しています。

詳細例この列の

table(train$odor) #train 
    c f m n p s y 
189 2155 36 2150 2 576 576 

table(test$odor) #test 

    a c f l n p 
400 3 5 400 1378 254 

我々は、テストデータセット内のインスタンスのかなりの数のテストに2つの余分なレベルを有します。どのようにこれらの矛盾を処理することができます。ここで

table(train$sColour) #train 
    b h k n o r w y 
    48 1627 700 753 48 72 2388 48 

    table(test$sColour) #test 
    h k n u 
    5 1172 1215 48 

は、私たちは、私が最初にちょうどトレーニングセットのモデルを構築し、重要な予測因子を発見して、因子レベルを心配すべきU

の余分な要素を持っていますか?

+0

@Tchotchkeテストで余分な要素を削除したくないので、モデルがエラーを投げないようにこれらの余分な要素をどのように処理できるかを知りたい。 –

+1

@Tchotchkeテストとトレーニングのデータを組み合わせてすべての列をリファクタリングし、データを再度分割する必要がありますか? –

+1

あなたはそうです、それは私の誤解です。あなたが提案するものは理にかなっています。あなたのデータに関して私が持っていたより大きな質問は、テストと列車のセットは(少なくともこれらの要素に沿って)非常に異なる分布を持つように思われるので、それは困難なモデリング作業になる可能性が高いです。 – Tchotchke

答えて

1

異なるフィーチャセットを持つことは、機械学習の基本的な教訓に違反します。トレーニングデータとテストデータは、同じデータスペースを表す必要があります。これらはしません。各ペアに共通のフィーチャ(ディメンション)のカーネルがあり、同じモデルでそれらを使用するには、各セットを共通のフィーチャのみに減らすか、両方のフィーチャをフィーチャのユニオンに拡張する必要があります。余分な機能のために意味的にヌル値を使用します。

+3

私は、OPには異なる機能があると言いますが、カテゴリやファクタ機能の値は異なっているとは思いません。そうだとすれば、これは重複していると思います(私はその質問にコメントしたように)、そこで問題が解決されました。 – Tchotchke

関連する問題