問題タブ [naivebayes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Spark MLlib Naive Bayes のトレーニング ファイルを作成し、TF-IDF を計算する方法
カテゴリ ツリーで多くの製品を分類する必要があります。Spark と Mlib Naive Bayes でテストしています。しかし、TF-IDF の計算方法がわかりません。
次のようなトレーナー ファイルがあります。
などなど
最初の列はカテゴリ ID で、残りの列はインデックスに変換された単語です。
これは、トレーニングに使用する (疑似) コードです。
カテゴリを検索しようとすると、次のようになります。
結果は正しく、カテゴリ 103 が返されます: 結果 = 103.0
問題は、トレーナー ファイルの TF-IDF をどのように計算できるかということです。
statistics - 交差/直交機能セットを備えた単純ベイズ分類器?
Naive Bayes Classifier (NBC) に適していると思われる分類の問題に直面しています。ただし、問題が 1 つあります。通常、NBC は、確率変数 X の観測値 x に基づいて、クラス C のセットから最も可能性の高いクラス c を推定することによって機能します。
私の場合、機能を共有する場合と共有しない場合がある複数の変数 X1、X2 があります。変数 X1 は機能 (xa、xb、xc) を持つことができ、X2 は (xc、xd) を持つことができ、別の変数 X3 は (xe) を持つことができます。特徴が交差または直交しているにもかかわらず、X1、X2、および X3 を同時に分類できる 1 つの分類器を構築することは可能ですか?
この問題は別の観点から見ることができます。特定のクラスについて、特定の機能のすべてのデータが欠落しています。次の表を検討してください。
クラス = {C1,C2}。
機能 = X = {X1,X2,X3}、X1={A,B}、X2={1,2}、X3={Y,N}
クラス C1:
クラス C2:
ご覧のとおり、機能 X3 はクラス C1 とは何の関係もありません。クラス C1 を分類する機能 X3 のデータはありません。X=(A,2,N) を C1 と C2 の両方に分類する分類器を作成できますか? クラス C1 の X3 の欠落データの条件付き確率を計算するにはどうすればよいですか?
text-mining - 目的 - 主観的なテキスト分類子:
imdb data を使用して、主観的および客観的なテキストの分類器を構築しようとしています。客観的なデータ ポイントについては、映画のあらすじの要約を入力として使用していますが、主観的なデータ ポイントについては、映画のレビューを使用しています。
レビューの場合、1 人のユーザーによる各レビューは 1 つのデータ ポイントです。私のデータベースでは、異なるユーザーによる同じ映画の異なるレビューは、異なるデータ ポイントとして入力されます。
この後、特殊文字の単語をきれいにし、ストップ ワードを削除し、情報ゲインを計算して単語辞書を作成し、単語の頻度を使用して Naive Bayes を適用して確率を計算しました。
今私の質問は
- 分類器を構築するアルゴリズムは正しいですか?
- 私の分類子は、客観性に大きく偏っています。トレーニングデータの作成を間違えていませんか?
ツイートやブログから抽出したものに使用できるジェネリック分類器を作成したいと考えています。映画のレビューデータは十分ですか?現在、映画のレビューデータでも機能していません
python - .pickle で保存された分類子が、1 つのプログラムでのトレーニングと分類とは異なる結果をもたらすのはなぜですか
以前にスタックでこの問題を見たことがありますが、解決策はうまくいきませんでした。Save and Load testing classify Naive Bayes Classifier in NLTK in another method を参照してください。同じプログラムでトレーニングと分類を行うのとは対照的に、ピクルス化された分類子をロードすると、なぜ精度が大きく異なるのか、私は困惑しています。最初のコード ブロックは pickled 分類器を呼び出しており、2 番目のコード ブロックはすべてのトレーニングと分類を一緒に行っています。2 番目の方法では 99% の精度が得られ、最初の方法では 81% の精度が得られます...
このコードとは対照的に、精度をトレーニングしてテストします。私はすべてに同じ定義を使用しているので、問題が定義にないことはわかっています。唯一の違いは、漬物の分類器です...何が起こっているのでしょうか?
python - Python NLTK を使用して文字列内の都市、郡、およびそれらの略語を検索する方法
私は、提供または検索、出発地と目的地、および日付と時刻によって、ライドシェア Facebook グループからの投稿を分類する作業を行っています。人々は次のようなものを投稿します:
オファリング: SF からサウス ウェスト ラ (トーランス) まで 今週の木曜日の夜、つまり明日の 6 時か 7 時に出発
オファリング: SFO--->LA (ビバリーヒルズ エリア) 木曜日の午前 9 時 30 ドルのガス
正規表現を使用して、テキストをクリーンアップします。
SF から南西ラ トーランスまで提供し、この木曜日の夜、つまり明日の 6 時か 7 時頃に出発します
ラ ビバリー ヒルズ エリアに sfo を提供 木曜日の午前 9 時 30 ガス
次に、クリーンアップされた新しい投稿を mysql データベースに保存します。
ナイーブベイのトレーニングセットを作成する前に、場所を削除してメタワードに置き換えるようにアドバイスされました(他のアルゴリズムの提案を歓迎します)。ucla (「sf」などの都市と郡の略語を含む)、都市、郡などの場所をチェックします。Python の NLTK ライブラリを使用して場所を削除し、メタ ワードに置き換えながら、どの場所がどのメタ ワードに対応するかを追跡したいと考えています。
上記のコード (checkForPlaces 関数は示されていませんが、実質的に同じです) では、2 番目の投稿は次のようになります。
LOCATION から LOCATION LOCATION エリアに木曜日の午前 9 時 30 分に LOCATION を提供します。
最初の場所が sfo、2 番目が la、3 番目がビバリーヒルズに対応することを追跡します。
- ご覧のとおり、sf は San Francisco の略です。テキストをデータベースに入れる前に最初にクリーンアップするとき、サンフランシスコのすべてのインスタンスを SF に置き換えるか、SF のすべてのインスタンスをサンフランシスコに置き換える必要がありますか? 略語を頻繁に誤って置き換えていたため、現在前者を実行しています(おそらく私の正規表現には作業が必要ですか?)。
- あるいは、すべての都市のリストを作成し、その都市または略語が投稿に存在するかどうかを NLTK 関数に教えてもらうと、はるかに簡単になります。そのようなものは存在しますか?おまけの質問: 日付と時刻を解析する方法 (考えられるすべての形式で表示されます)。
ここでより多くの投稿例を見つけることができます
apache-spark - Spark Naive Bayes分類器でクラスの確率を取得するには?
Spark で NaiveBayesModel をトレーニングしていますが、それを使用して新しいインスタンスを予測する場合、各クラスの確率を取得する必要があります。NaiveBayesModel の予測関数のコードを調べたところ、次のコードが思いつきました。
これは正しく機能しますか?この行BLAS.axpy(1.0, piVector, prob)
は、値「axpy」が見つからないというエラーを出し続けます。