目次:
- データのロード
- <! - 2 - > >>>> sklearnから。アンサンブルのインポートRandomForestClassifier >>>> rf = RandomForestClassifier(n_estimators = 15、
- 3行目は、作成したばかりのランダムフォレストクラシファイアのインスタンスを取得し、fitメソッドを呼び出してトレーニングデータセットでモデルをトレーニングします。
- n_estimators
ランダムフォレストモデルは、予測分析に使用する。そのモデルを作成するために意思決定ツリーのアンサンブル(選択)が必要です。このアイデアは、弱い学習者(トレーニングデータのランダムなサブセット)の無作為標本を取って、最も強く最良のモデルを選択するように投票させることです。ランダムフォレストモデルは、分類または回帰のいずれかに使用できます。以下の例では、ランダムなフォレストモデルを使用してアイリス種を分類しています。
データのロード
このコードリストは、
iris
データセットをsklearnのセッションにロードします: >>>>データセットimport load_iris >>>>> iris = load_iris()
分類子のインスタンスの作成
次の2行のコードは、分類子のインスタンスを作成します。最初の行はランダムなフォレストライブラリをインポートします。 2行目は、ランダムフォレストアルゴリズムのインスタンスを作成します。
<! - 2 - > >>>> sklearnから。アンサンブルのインポートRandomForestClassifier >>>> rf = RandomForestClassifier(n_estimators = 15、
random_state = 111)
コンストラクタの
n_estimators
パラメータは、ランダムフォレストモデル。この値は、フォレスト内のツリーの数を構築するために使用されます。一般にデータセットの10〜100%ですが、使用しているデータによって異なります。ここで、値はデータの10%である15に設定されます。後で、パラメータ値を150(100%)に変更すると同じ結果が得られることがわかります。
<! - 9 - >
n
_estimators
は、モデルのパフォーマンスとオーバーフィットを調整するために使用されます。値が大きいほど、パフォーマンスは向上しますが、オーバーフィットのコストがかかります。値が小さいほど、オーバーフィットしない可能性は高くなりますが、パフォーマンスは低下します。また、数を増やすと精度の向上が一般的に低下し、必要な計算能力が大幅に向上する可能性があります。コンストラクタで省略された場合、パラメータのデフォルトは10です。
ランダムフォレスト分類子のインスタンスを作成する前に、データセットをトレーニングセットとテストセットに分割する必要があります。次のコードは、このタスクを実行します:sklearn import cross_validation >>>> X_train、X_test、y_train、y_test =
cross_validationから >>>> test_size = 0,10、random_state = 111) >>>> rf = rf。 fit(X_train、y_train)
1行目は、データセットを2つに分割するライブラリをインポートします。2行目は、データセットを2つの部分に分割し、今分割したデータセットを2組の変数に割り当てるライブラリから関数を呼び出します。
3行目は、作成したばかりのランダムフォレストクラシファイアのインスタンスを取得し、fitメソッドを呼び出してトレーニングデータセットでモデルをトレーニングします。
テストデータの実行
次のコードでは、最初の行でテストデータセットがモデルに供給され、3行目に >>>> predicted = rfという出力が表示されます。予測される(X_test) >>>>予測された配列([0,0,2,2,2,0,0,2,2,1,2,0,1,2,2]) >モデルの評価
予測からの出力を
y_test
配列と相互参照することができます。その結果、2つのテストデータポイントが誤って予測されていることがわかります。したがって、ランダムな森林モデルの精度は86.6%でした。
sklearnインポートメトリックの >>>>予測された配列([0、0、2、2、2、0、0、2、2、1、 (0,0,2,2,1,0,0,2,2,1,2,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23) 2、2]) >>>>メトリック。精度_スコア(y_test、予測値)
- 0。 (True、True、True、True、False、True、True、
- True、True、True、True、True、True) dtype = bool)
n_estimators
パラメータを150に変更すると、ランダムフォレストモデルはどのように機能しますか?この小さなデータセットでは違いがないようです。これは、同じ結果を生成します。 >>>> rf = RandomForestClassifier(n_estimators = 150、
random_state = 111) >>>> rf = rf。フィット(X_train、y_train) >>>>予測= rf。予測される(X_test) >>>>予測された配列([0,0,2,2,2,0,0,2,2,1,2,0,1,2,2]) >