ランダムフォレストのリグレッサまたは分類子を選択する必要がありますか?


11

ランダムフォレストによるバイナリターゲットクラスをデータセットに適合させます。Pythonでは、randomforestclassifierまたはrandomforestregressorのいずれかでそれを行うことができます。

randomforestclassifierから直接分類を取得することも、randomforestregressorを最初に実行して推定スコアのセット(連続値)を取得することもできます。次に、スコアのセットから予測クラスを導出するためのカットオフ値を見つけることができます。どちらの方法でも同じ目標を達成できます(つまり、テストデータのクラスを予測します)。

それも観察できます

randomforestclassifier.predict_proba(X_test)[:,1]) 

とは違う

randomforestregressor.predict(X_test)

だから私は両方の方法が有効であることを確認したいのですが、ランダムフォレストアプリケーションではどちらが良いですか?


1
私の即座の反応は、分類器が正確に作成されたものであるため、分類器を使用する必要があるということですが、それが大きな違いをもたらすかどうかは100%わかりません。リグレッサの使用は、ロジスティック回帰の代わりに線形回帰を使用するようなものです。これは機能しますが、多くの状況では機能しません。私は適切な答えを得ることができるかもしれませんが、1日ほどではありません。
Peter Ellis

回答:


6

分類子を使用します。いいえ、どちらも有効ではありません。

最初に、回帰と分類のトピックをよく読んでください。MLについて何も知らないままMLを使用すると、気付かない間違った結果が得られるためです。そして、それはかなり危険です...(それはあなたの周りにあなたの銃を保持するべきか、それが問題ではないかを尋ねるのと少し似ています

分類器を使用するかリグレッサを使用するかは、解決する問題の種類にのみ依存します。バイナリ分類の問題があるため、分類子を使用します。

最初にrandomforestregressorを実行して、推定確率のセットを取得できます。

番号。回帰から確率を得ることはありません。指定した値(この場合は0と1のみ)を「補外」しようとします。これは、1を超える値または0未満の値が回帰出力として完全に有効であることを意味します。これは、出力として2つの離散値(分類と呼ばます)だけを期待するのではなく、連続値です。

特定のポイントが特定のクラスに属するように「確率」(これらは十分に調整された確率である必要はないことに注意してください)が必要な場合は、分類子をトレーニングして(データの分類を学習する)、次に使用します.predict_proba()は、確率を予測します。

ここで言及するだけです:.predict対.predict_proba(分類子の場合!).
predictは.predict_probaの出力を受け取り、すべてを特定のしきい値(通常は0.5)未満の0から、そのしきい値を超える1にそれぞれ変更します。

備考:確かに、内部的には、「最後のレイヤー」などを除いてまったく同じです!それでも、彼ら(または彼らが解決している問題)を完全に異なるものとして見てください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.