————————————————————————— ValueError Traceback (most recent call last) Cell In[173], line 79 76 print(X_combined.shape) 78 # ナイーブベイズモデルを使用して予測を行う —> 79 y_predicted_nb = best_model.predict(X_combined) 81 # ランダムフォレストモデルを使用して予測を行う 82 # ナイーブベイズの予測を含む新しい特徴量を作成 83 nb_predictions = best_model.predict(X_combined) File /home/share/temp/venv/lib/python3.8/site-packages/imblearn/pipeline.py:453, in Pipeline.predict(self, X, **params) 451 for _, name, transform in self._iter(with_final=False): 452 Xt = transform.transform(Xt) –> 453 return self.steps[-1][1].predict(Xt, **params) 455 # metadata routing enabled 456 routed_params = process_routing(self, “predict”, **params) File /home/share/temp/venv/lib/python3.8/site-packages/sklearn/naive_bayes.py:101, in _BaseNB.predict(self, X) 87 “”” 88 Perform classification on an array of test vectors X. 89 (…) 98 Predicted target values for X. 99 “”” 100 check_is_fitted(self) … 416 f”X has {n_features} features, but {self.__class__.__name__} ” 417 f”is expecting {self.n_features_in_} features as input.” 418 ) ValueError: X has 671617 features, but MultinomialNB is expecting 58302 features as input. Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…

エラーメッセージによると、モデルが予期しない入力の次元数に遭遇しているようです。これは、X_combinedの特徴量数がモデルに適合していないためです。おそらく、テキストデータをベクトル化する際に何かしらの問題が発生しています。

ベクトル化の前処理におけるいくつかの考えられる問題点を挙げてみます:

  1. 語彙の選定: CountVectorizerを使用してテキストをベクトル化する際に、適切な語彙サイズを選択しましたか?特に、max_featuresパラメータを設定することで、語彙のサイズを制限することができます。

  2. テキストの前処理: テキストデータの前処理で、ストップワードの除去、語幹処理、記号の削除などが適切に行われているか確認してください。

  3. 訓練データとテストデータの一貫性: モデルを構築する際に使用したCountVectorizerの設定と、予測に使用するデータにおいて、同じ前処理が行われていることを確認してください。

これらの点を確認して、問題を特定して修正してください。

未分類

Posted by ぼっち