決定ツリーアルゴリズムの改善-統合学習
決定ツリーアルゴリズムの改善-統合学習
1.学習定義の統合
複数の弱い学習方法(すなわちID 3アルゴリズム,C 4.5アルゴリズム,CARTアルゴリズム)の組合せを用いて,複数の分類モデル,すなわち複数の決定木(クラス比マルチエキスパート投票)を作成し,元の方法よりも優れた分類結果を得た.
2.統合学習の具体的な分類袋詰め法はn n n個のサンプルからm m回70%を抽出したサンプルを戻して訓練し(多専門家の決定をシミュレートし、学んだ知識が異なる)、分類結果を向上させた.pythonは袋詰め法を実現し、分類結果を改善した: 昇格法(Boosting)は木の学習の精度を高め、訓練中にサンプルごとに重みを与え、分類されていないサンプルの重みを絶えず修正し、学習速度を高める.python実現リフト法改善分類結果: ランダム森林は何度もサンプリングされ、毎回抽出されるサンプルは異なり、毎回抽出される部分の属性も異なり、ランダム性がより強く、法則の把握がより全面的である.pythonランダム森林サンプル抽出を実現:
3.決定木のまとめ決定ツリーのアルゴリズムは多いが、構想はほぼ同じで、最も重要な属性を探して、分岐を行い、違いは決定ツリーの分岐基準が異なり、つまりどの属性が比較的重要な基準が異なるかを測定する. メトリック決定ツリーの良し悪し:精度、精度、リコール率、F 1値、ROC曲線 決定木分類効果の向上:K折交差検査、袋詰め法、昇格法、ランダム森林 機械学習で最も重要なのは特徴工学であり、特徴は最も重要な属性であり、決定ツリーは特徴獲得の方法であり、決定ツリーの役割は分類され、特徴を探す.(最も重要な属性)
1.学習定義の統合
複数の弱い学習方法(すなわちID 3アルゴリズム,C 4.5アルゴリズム,CARTアルゴリズム)の組合せを用いて,複数の分類モデル,すなわち複数の決定木(クラス比マルチエキスパート投票)を作成し,元の方法よりも優れた分類結果を得た.
2.統合学習の具体的な分類
#sklearn ,
#
import sklearn.datasets as datasets
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score#ensemble
from sklearn.ensemble import BaggingClassifier #
from sklearn.tree import DecisionTreeClassifier
# iris
iris=datasets.load_iris()
X=iris.data
Y=iris.target
#
seed=42
kfold=KFold(n_splits=10,random_state=seed)#10
cart=DecisionTreeClassifier(criterion='gini',max_depth=2)# CART
cart=cart.fit(X,Y)
result=cross_val_score(cart,X,Y,cv=kfold)
print(" :",result.mean())
model=BaggingClassifier(base_estimator=cart,n_estimators=100,random_state=seed)
result=cross_val_score(model,X,Y,cv=kfold)
print(" :",result.mean())
#sklearn ,
#
import sklearn.datasets as datasets
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import AdaBoostClassifier #
from sklearn.tree import DecisionTreeClassifier
#
dataset_all=datasets.load_breast_cancer()
X=dataset_all.data
Y=dataset_all.target
#
seed=42
kfold=KFold(n_splits=10,random_state=seed)#10
dtree=DecisionTreeClassifier(criterion='gini',max_depth=2)# CART
dtree=dtree.fit(X,Y)
result=cross_val_score(dtree,X,Y,cv=kfold)
print(" :",result.mean())
model=AdaBoostClassifier(base_estimator=dtree,n_estimators=100,random_state=seed)
result=cross_val_score(model,X,Y,cv=kfold)
print(" :",result.mean())
#python
#
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import sklearn.datasets as datasets
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score#ensemble
from sklearn.ensemble import RandomForestClassifier #
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.tree import DecisionTreeClassifier
#
X,Y=make_blobs(n_samples=1000,n_features=6,centers=50,random_state=0)
plt.scatter(X[:,0],X[:,1],c=Y)# ,
plt.show()
3.決定木のまとめ