————————————————————————— ValueError Traceback (most recent call last) Cell In[179], line 117 114 print(X_combined.shape) 116 # ナイーブベイズモデルを使用して予測を行う –> 117 y_predicted_nb = best_model.predict(X_combined) 119 # ランダムフォレストモデルを使用して予測を行う 120 # ナイーブベイズの予測を含む新しい特徴量を作成 121 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 671902 features, but MultinomialNB is expecting 58302 features as input.

このエラーは、ナイーブベイズモデルが予期しない特徴量数を受け取ったことを示しています。おそらく、テキストデータをベクトル化する際に特徴量数が予想よりも多くなっています。

これは、CountVectorizerによって生成される特徴量が予期せず多い可能性があります。テキストデータをベクトル化するときに、単語の数が非常に多い場合、特徴量の数が膨大になることがあります。

この問題を解決するためには、テキストデータを適切に前処理し、不要なトークンや単語を削除する必要があります。また、CountVectorizerのパラメータを調整して、生成される特徴量の数を制御することもできます。

データの前処理とCountVectorizerのパラメータ調整を行って、特徴量の数を制御し、再度モデルに適合させてください。

未分類

Posted by ぼっち