ナイーブベイスをグリッドサーチしたい

ナイーブベイズをグリッドサーチするためには、GridSearchCVを使用して探索するハイパーパラメータの候補を指定し、それをモデルと組み合わせます。以下は、ナイーブベイズをグリッドサーチする例です。

python
from sklearn.model_selection import GridSearchCV from sklearn.naive_bayes import MultinomialNB from sklearn.feature_extraction.text import CountVectorizer from sklearn.pipeline import Pipeline import pandas as pd # データの読み込み data = pd.read_csv('/home/share/temp/shipping_size_traning_add_category.csv') # 商品名を特徴量として取得 X_product_name = data['product_name'] y = data['size'] # テキストデータを単語の出現回数に変換するCountVectorizerを定義 vectorizer = CountVectorizer() # 商品名のテキストデータを特徴量に変換 X_product_name_vectorized = vectorizer.fit_transform(X_product_name) # パイプラインの定義 pipeline = Pipeline([ ('vectorizer', CountVectorizer()), ('classifier', MultinomialNB()) ]) # 探索するハイパーパラメータの候補を指定 param_grid = { 'vectorizer__ngram_range': [(1, 1), (1, 2)], # バイグラムを試す場合など 'classifier__alpha': [0.1, 1.0, 10.0], # スムージングのパラメータ } # グリッドサーチを用いて探索 grid_search = GridSearchCV(pipeline, param_grid, cv=10) grid_search.fit(X_product_name, y) # 最適なモデルとそのハイパーパラメータを取得 best_model = grid_search.best_estimator_ best_params = grid_search.best_params_ print("Best Model:", best_model) print("Best Parameters:", best_params)

この例では、MultinomialNBモデルとCountVectorizerをパイプラインで組み合わせています。そして、GridSearchCVを使用して探索するハイパーパラメータの候補を指定し、最適なモデルとそのハイパーパラメータを取得しています。

未分類

Posted by ぼっち