私は、2つの別々のトレーニングとテストセットを使って、Pythonで予測モデルを構築しています。トレーニングデータには、数値型のカテゴリ変数(例:郵便番号[91521,23151,12355、...])と、市区町村[市区町村[ニューヨーク市]、[ロサンゼルス市] ...]。トレーニングとテストのデータに同じダミー変数を残す
データを訓練するには、まず「pd.get_dummies」を使用してこれらの変数のダミー変数を取得し、モデルに変換されたトレーニングデータをフィットさせます。
私はテストデータで同じ変換を行い、訓練されたモデルを使用して結果を予測します。しかし、エラーが発生しました'ValueError:モデルのフィーチャの数が入力と一致している必要があります。モデルn_featuresは1487であり、入力n_featuresは1345 'です。なぜなら、「都市」と「郵便番号」が少ないため、テストデータにダミー変数が少なくなるからです。
どうすればこの問題を解決できますか?たとえば、 'OneHotEncoder'はすべての数値型カテゴリ変数のみをエンコードします。 'DictVectorizer()'はすべての文字列型カテゴリ変数のみをエンコードします。私はオンラインで検索し、いくつかの同様の質問を参照してくださいしかし、それらのどれも本当に私の質問に対処しません。
Handling categorical features using scikit-learn
https://www.quora.com/What-is-the-best-way-to-do-a-binary-one-hot-one-of-K-coding-in-Python