決定木のsklearn

「」 ' 
ディシジョンツリー:
アルゴリズムの基本原則:
核となるアイデア:同様の入力は、同様の出力を生成します。例えば誰か予測を支払う:
年齢:1 -若い、中年2-、3-高齢者
教育:学士1-、2-マスター、博士の3-
経験:デビュー1-、2-一般的な、ベテラン3-、4-灰を
性別:1 -男性、女性2

|年齢|教育|体験|セックス| ==> |給与|
| ---- | ---- | ---- | ---- | ---- | ----------- |
| 1 | 1 | 1 | 1 | ==> | 6000(ロー)|
| 2 | 1 | 3 | 1 | ==> | 10000(中)|
|。3 | 3 | 4 | 1 | == > | 50000( 高い)|
| ... | ... | ... | ... | ==> | ... |
?| 1 | 3 | 2 | 2 | ==> | |

サンプルデータを処理するツリーデータ構造を使用する、検索効率を向上させるために:最初の3歳のサブサブツリーによって、その後教育に従ってダウン指し、すべての機能が分割されるまで知られて終了
これは、子テーブルの葉を与える、子テーブルのリーフレベルはまったく同じサンプルのすべての固有値を開催します。

全て同じ機能の値の各サブテーブルは、最初の学習サンプルマトリクスサブテーブルが分割されているから、第一の特徴を選択
し、同じルールの下で、各サブテーブル内の次の機能を選択すると、より小さなサブテーブルを分割していきすべてのこれまで、すべての機能を使用するまで、繰り返される
全てのサンプルの特性値が全て同じである。この場合は、副リーフテーブルを与えます。サンプルを予測するために、そのそれぞれの特徴量に応じて、対応するサブテーブル、選択
葉の完全一致を発見サブテーブル、テーブル内のサブサンプルの出力、平均値(回帰)または投票まで1試合ずつ予測される出力サンプルを提供する(分類)。
サブテーブルの区分と、情報エントロピー(情報混乱の度合い)がますます小さく、より多くの純粋な情報、データ、より多くの秩序を得ます。

ディシジョンツリー回帰モデル関連のAPI:
ST ASインポートsklearn.tree
決定木決定木を作成するために、最大深度回帰モデル#が4である
モデル= st.DecisionTreeRegressor(MAX_DEPTH = 4)
トレーニングモデル
#Train_x:サンプルデータの二次元アレイ
#1 train_y:トレーニングセットの結果は、各行に対応するサンプルの
model.fit(train_x、train_y)
試験モデル
pred_test_y = model.predict(test_x)

決定木モデルの最適化:
1.工学最適化:使用しないでくださいすべての機能は、子テーブルの葉は、許容される所定の精度を犠牲にし、それによって、ツリーの層の数を減らす、混合異なる特性値を許さない
モデルの性能を向上させます。一般に、嗜好は、特徴のサブテーブルを分割するための基礎として、最大エントロピー量を低減することができます。
2.収集アルゴリズム:提示異なる予測モデルの複数の結果、平均値(回帰)または投票法(分類)を使用して、最終的な予測結果を得ます。決定木アルゴリズムのセットに基づいて
いる、一定のルール、および互いに異なるデシジョンツリーモデルを構築するためのより多くの樹木によると、未知のサンプルの予測のために与えられた、され
、最終的には、比較的包括的な結論は、平均値や投票を取得。---一緒に木両面、マルチツリー、一般化モデル
1>正のインセンティブ:まず、サンプルマトリックスサンプルはランダムに割り当てられた初期重み、それによって重い右へ、と決定木を構築する
ことによりときに決定木は、加重平均または加重投票の実施形態によって得られた予測値を生成する予測出力を提供します。
モデルにトレーニングサンプルは、これらの異なるサンプルの予測値と実際の値の出力を予測し、その重量を増加させる
ことにより、第2の決定木を形成します。いくつかの決定木の異なる重みを構築するためのプロセスを繰り返します。---一緒に木の両面、多木、汎化モデル
正のインセンティブ関連のAPI:
ST ASインポートsklearn.tree
SE#のASインポートsklearn.ensembleコレクションアルゴリズムモジュール
#モデル:デシジョンツリーモデル(a)に、その単一の決定木モデル
モデル= st.DecisionTreeRegressor(MAX_DEPTH = 4)
強化適応決定木、回帰モデルの
#のn_estimators:400異なる重みツリー(どのように多くの木)、研修モデルの構築
モデル= se.AdaBoostRegressor(モデル、n_estimators = 400、random_state = 7)
トレーニングモデル
model.fit(train_x、train_y)
試験モデル
pred_test_y = model.predict(test_x)


ケース:ボストン地域の住宅価格を予測します。
手順:
1.データを読み取り、元のデータセット、テストやトレーニングセットを中断することが分割されて
2
「」 '
NPとしてインポートのnumpyのを
MPとしてインポートがmatplotlib.pyplot
STは、ASインポートsklearn.tree
のSD番号のsklearnとしてインポートsklearn.datasetsを提供しますデータセット
のsu#データセットとしてインポートsklearn.utilsは、行によって破壊することができる
SM ASインポートsklearn.metrics
SE AS sklearn.ensemble輸入

住宅価格に#負荷ボストンハウス
ボストンsd.load_boston =()
#[ 'CRIM'、 'ZN'、 'INDUS'、 'CHAS'、 'NOXの'、 'RM'、「AGEの'税'、 'DIS'、 'RAD'、 'PTRATIO'、 'B'、 'LSTAT']
#[ 「犯罪」、「住宅の割合」、「商業地の割合は、」「'」、川であります

入力された印刷(boston.data.shape)#データ
出力プリント(boston.target.shape)#データ

#のテストセットとトレーニングセットが第2 ---分割され、訓練のための80%、テスト20%
random_stateは、ランダムシード、破壊された場合に使用された同じランダムシード、同一の、結果と呼ばれる
X、Y = su.shuffle(boston.data、 boston.target、random_state = 7)# 行データによって破壊を設定
train_size = INT(LEN(X)* 0.8)
train_x、test_x、train_y、test_y X = [:train_size]、X [train_size:]、Y [:train_size]、Y [train_size:】
プリント(train_x.shape)
プリント(test_x。形状)

#ディシジョンツリーベースのモデリング- >トレーニングモデル- >テストモデル-----単一決定木の
モデル= st.DecisionTreeRegressor(MAX_DEPTH = 4)
model.fit(train_x、train_y)
pred_test_y = model.predict (test_x)

モデル査定---単一決定木
を印刷(sm.r2_score(test_y、pred_test_y))
を印刷(「======================= 「)

正のインセンティブに基づく#は、住宅価格を予測します
= se.AdaBoostRegressorモデル(モデル、n_estimators = 400、random_state = 7)
model.fit(train_x、train_y)
pred_test_y = model.predict(test_x)
正のインセンティブモデルスコアの#
プリント(sm.r2_score(test_y、pred_test_y) )


出力結果:
[ 'CRIM 'ZN'税'AGEの' RM 'NOXの' INDUS 'CHAS'' 'DIS' 'RAD' 'PTRATIO'
 'B' 'LSTAT']
(506、13)と
( 506)
(404、13)
(102、13)
0.8202560889408635
=======================
0.9068598725149652

おすすめ

転載: www.cnblogs.com/yuxiangyang/p/11184003.html