scikit-learnを用いたナイーブベイズ分類器におけるカテゴリと連続データの混合
質問
私はPythonでscikit-learnを使用して、特定の顧客の性別を予測するための分類アルゴリズムを開発しています。とりわけ、私はナイーブベイズ分類器を使用したいのですが、私の問題は、カテゴリデータ(例: "オンライン登録"、 "メール通知を受け入れる"など)と連続データ(例: "年齢" " 会員期間"など)の混合を持っているということです。scikitはあまり使ったことがないのですが、連続データにはガウス型ナイーブベイズ、カテゴリデータにはベルヌーイナイーブベイズが適しているのでしょう。しかし、私は と しかし、私はカテゴリデータと連続データの両方をモデルに入れたいので、これをどのように扱えばいいのかよくわかりません。どんなアイデアでも大いに感謝します!
どのように解決するのですか?
少なくとも2つの選択肢があります。
-
各連続変数のパーセンタイルを計算し、ビンの境界としてパーセンタイルを使用して連続変数をビン化することによって、すべてのデータをカテゴリ表現に変換します。例えば、人の身長の場合、次のビンを作成します: "very small", "small", "regular", "big", "very big" 各ビンが学習セットの母集団のおよそ20%を含むことを保証します。scikit-learnにはこれを自動的に行うユーティリティはありませんが、自分で行うにはそれほど複雑ではないはずです。そして、データのカテゴリ表現にユニークな多項式NBをフィットさせます。
-
データの連続部分にはガウスNBモデルを、カテゴリ部分には多項NBモデルを独立にフィットさせる。その後、クラス割り当て確率を取ることで全てのデータセットを変換する(但し、クラス割り当て確率は
predict_proba
メソッドで)新しい特徴量とする。np.hstack((multinomial_probas, gaussian_probas))
とし、新しい特徴量に対して新しいモデル(例えば新しいガウスNB)を再フィットする。
関連
-
[解決済み】scikit-learnで分類器をディスクに保存する。
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] バブルソートの宿題
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。