機器學習庫sklearn中整合學習模型引數釋義
阿新 • • 發佈:2019-02-07
參考:《Python大戰機器學習》''' scikit-learn基於AdaBoosts演算法提供了兩個模型: 1.AdaBoostClassifier用於解決分類問題 2.AdaBoostRegressor用於解決迴歸問題 ''' from sklearn.ensemble import AdaBoostClassifier AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1., algorithm='SAMME.R', random_state=None) ''' 引數含義: 1.Base_estimator:object, optional (default=DecisionTreeClassifier) 基分類器。預設為DecisionTreeClassifier。 基分類器需要支援帶樣本權重的學習以及具備classes_和n_classes_屬性。 2.n_estimator:integer, optional (default=50) 整數,預設是50.指定基分類器的數量。 提升學習過程被終止時基分類器的最大數量。當完美的擬合訓練資料了, 提升演算法會提前停止。這時的基本分類器數量小於給定的值 3.learn_rate:float, optional (default=1.). 學習率。預設是1. 通過learning_rate縮減每個分類器的貢獻。在learning_rate和n_estimators之間需要權衡。 通常學習率越小,需要的基本分類器就越多,因此在learning_rate和n_estimators之間要有所折中。 學習率就是下面公式中的v: F_m(x)=F_m-1(x)+v*alpha_m*G_m(x) 其中G_m(x)就是第m個基本分類器。aplha_m是第m個基本分類器的係數。 4.algorithm:{'SAMME', 'SAMME.R'}, optional (default='SAMME.R') 指定所採用的演算法。預設為'SAMME.R'。 標準的AdaBoost演算法只適用於二分類問題。SAMME適用於AdaBoost多分類問題 (1).algorithm='SAMME',採用SAMME離散提升演算法。 (2).algorith='SAMME.R',採用SAMME.R真正的提升演算法。如果選擇SAMME.R演算法, 基本分類器必須必須支援類別概率的計算。 (3).SAMME.R演算法通常比SAMME收斂得更快,通過較少的提升迭代實現較低的測試誤差。 5.random_state:int, RandomState instance or None, optional (default=None) (1).如果為整數,則它指定了隨機數生成器的種子。 (2).如果為RandomState例項,則指定了隨機數生成器。 (3).如果為None,則使用預設的隨機數生成器。 屬性: 1.estimators_:list of classifiers.分類器列表。所有訓練過的基本分類器。 2.classes_ : array of shape = [n_classes]。類別標籤。 3.n_classes_ : int。類別數量。 4.estimator_weights_ : array of floats。陣列,存放每個基本分類器的權重。 5.estimator_errors_ : array of floats。陣列,存放每個基本分類器的分類誤差。 6.feature_importances_ : array of shape = [n_features] 每個特徵的重要性。 方法: 1.fit():模型訓練。 2.predict():模型預測。 3.predict_log_proba():預測的每個樣本屬於各個類別的概率對數值。 4.predict_proba():預測的每個樣本屬於各個類別的概率值。 5.staged_predict():預測每一輪迭代後輸入樣本的預測值。 6.staged_predict_proba():預測每一輪迭代後輸入樣本屬於各個類別的概率值。 ''' from sklearn.ensemble import AdaBoostRegressor AdaBoostRegressor(base_estimator=None, n_estimators=50, learning_rate=1., loss='linear', random_state=None) ''' 引數含義: 1.base_estimator:object, optional (default=DecisionTreeRegressor) 基本分類器。預設是DecisionTreeRegressor 基分類器需要支援帶樣本權重的學習。 2.n_estimators:integer, optional (default=50) 整數,預設是50.指定基分類器的數量。 提升學習過程被終止時基分類器的最大數量。當完美的擬合訓練資料了, 提升演算法會提前停止。這時的基本分類器數量小於給定的值. 3.learning_rate:float, optional (default=1.) 學習率。預設是1. 通過learning_rate縮減每個分類器的貢獻。在learning_rate和n_estimators之間需要權衡。 通常學習率越小,需要的基本分類器就越多,因此在learning_rate和n_estimators之間要有所折中。 學習率就是下面公式中的v: F_m(x)=F_m-1(x)+v*alpha_m*G_m(x) 其中G_m(x)就是第m個基本分類器。aplha_m是第m個基本分類器的係數。 4.loss:{'linear', 'square', 'exponential'}, optional (default='linear') 指定損失函式。 (1).loss='linear',線性損失函式。 (2).loss='square',平方損失函式。 (3).loss='exponential',指數損失函式。 (4).在每一輪提升迭代之後,都需要通過損失函式更新權重。 5.random_state:int, RandomState instance or None, optional (default=None) (1).如果為整數,則它指定了隨機數生成器的種子。 (2).如果為RandomState例項,則指定了隨機數生成器。 (3).如果為None,則使用預設的隨機數生成器。 屬性: 1.estimators_:list of classifiers.分類器列表。存放所有訓練過的基本回歸器。 2.estimator_weights_ : array of floats。陣列,存放每個基本回歸器的權重。 5.estimator_errors_ : array of floats。陣列,存放每個基本回歸器的誤差。 6.feature_importances_ : array of shape = [n_features] 每個特徵的重要性。 方法: 1.fit():模型訓練。 2.predict():模型預測。 3.staged_predict():預測每一輪迭代後輸入樣本的預測值。 ''' ''' scikit-learn基於梯度提升樹演算法提供了兩個模型: GradientBoostingClassifier即GBDT,用於分類問題 GradientBoostingRegressor即GBRT,用於迴歸問題 ''' from sklearn.ensemble import GradientBoostingClassifier GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_depth=3, min_impurity_decrease=0., min_impurity_split=None, init=None, random_state=None, max_features=None, verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto') ''' 引數含義: 1.loss:{'deviance', 'exponential'}, optional (default='deviance') (1).loss='deviance',此時的損失函式與邏輯迴歸的損失函式相同,為對數損失:L(Y,P(Y|X))=-logP(Y|X). (2).loss='exponential',損失函式為指數損失函式。 2.learning_rate:float, optional (default=0.1)。預設0.1。 通過learning_rate縮減每個分類器的貢獻。在learning_rate和n_estimators之間需要權衡。 通常學習率越小,需要的基本分類器就越多,因此在learning_rate和n_estimators之間要有所折中。 學習率就是下面公式中的v: F_m(x)=F_m-1(x)+v*alpha_m*G_m(x) 其中G_m(x)就是第m個基本分類器。aplha_m是第m個基本分類器的係數。 3.n_estimators:int (default=100) 指定基本決策樹的數量。梯度提升對過擬合有很好的魯棒性,因此該值越大,效能越好。 4.subsample:float, optional (default=1.0). 用於擬合個體基本學習器的樣本數量。如果小於1.0,模型將會變成隨機梯度提升決策樹。 如果subsample<1.0,此時會減少方差,提高偏差 5.criterion;string, optional (default="friedman_mse") 評估節點分裂的質量指標。 6.min_samplses_split:int, float, optional (default=2) 表示分裂一個內部節點需要的最少樣本數。 (1).如果為整數,則min_samples_split就是最少樣本數。 (2).如果為浮點數(0到1之間),則每次分裂最少樣本數為ceil(min_samples_split * n_samples) 7.min_samples_leaf:int, float, optional (default=1) 葉子節點最少樣本數 (1).如果為整數,則min_samples_split就是最少樣本數。 (2).如果為浮點數(0到1之間),則每個葉子節點最少樣本數為ceil(min_samples_leaf * n_samples) 8.min_weight_fraction_leaf:float, optional (default=0.) 指定葉子節點中樣本的最小權重。 9.max_depth:integer, optional (default=3) 指定每個基本決策樹的最大深度。最大深度限制了決策樹中的節點數量。 調整這個引數可以獲得更好的效能。 10.min_impurity_decrease:float, optional (default=0.) 如果節點的分裂導致不純度的減少(分裂後樣本比分裂前更加純淨)大於或等於min_impurity_decrease,則分裂該節點。 個人理解這個引數應該是針對分類問題時才有意義。這裡的不純度應該是指基尼指數。 迴歸生成樹採用的是平方誤差最小化策略。分類生成樹採用的是基尼指數最小化策略。 加權不純度的減少量計算公式為: N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity) 其中N是樣本的總數,N_t是當前節點的樣本數,N_t_L是分裂後左子節點的樣本數, N_t_R是分裂後右子節點的樣本數。impurity指當前節點的基尼指數,right_impurity指 分裂後右子節點的基尼指數。left_impurity指分裂後左子節點的基尼指數。 11.min_impurity_split:樹生長過程中早停止的閾值。如果當前節點的不純度高於閾值,節點將分裂,否則它是葉子節點。 這個引數已經被棄用。用min_impurity_decrease代替了min_impurity_split。 12.init:BaseEstimator, None, optional (default=None) 一個基本分類器物件或者None,該分類器物件用於執行初始的預測。 如果為None,則使用loss.init_estimator. 13.random_state:int, RandomState instance or None, optional (default=None) (1).如果為整數,則它指定了隨機數生成器的種子。 (2).如果為RandomState例項,則指定了隨機數生成器。 (3).如果為None,則使用預設的隨機數生成器。 14.max_features:int, float, string or None, optional (default=None) 搜尋最佳劃分的時候考慮的特徵數量。 (1).如果為整數,每次分裂只考慮max_features個特徵。 (2).如果為浮點數(0到1之間),每次切分只考慮int(max_features * n_features)個特徵。 (3).如果為'auto'或者'sqrt',則每次切分只考慮sqrt(n_features)個特徵 (4).如果為'log2',則每次切分只考慮log2(n_features)個特徵。 (5).如果為None,則每次切分考慮n_features個特徵。 (6).如果已經考慮了max_features個特徵,但還是沒有找到一個有效的切分,那麼還會繼續尋找 下一個特徵,直到找到一個有效的切分為止。 (7).如果max_features < n_features,則會減少方差,增加偏差。 15. verbose:int, default: 0 如果為0則不輸出日誌資訊,如果為1則每隔一段時間列印一次日誌資訊 16.max_leaf_nodes:int or None, optional (default=None) 指定每顆決策樹的葉子節點的最大數量。 (1).如果為None,則葉子節點數量不限。 (2).如果不為None,則max_depth被忽略。 17.warm_start:bool, default: False 當為True時,則繼續使用上一次訓練的結果,增加更多的estimators來整合。 18.presort:bool or 'auto', optional (default='auto') 在訓練過程中,是否預排序資料加速尋找最佳劃分。 屬性: 1.feature_importances_:陣列,給出每個特徵的重要性。 2.oob_improvement_ : array, shape = [n_estimators] 陣列,給出了每增加一顆基本決策樹,在包外估計(即測試集上)的損失函式的改善情況(相對於上一輪迭代) 即損失函式的減少值。 3.train_score_:陣列,給出每增加一顆基本決策樹,在訓練集上的損失函式的值。 4.init:初始預測使用的分類器。 5.estimators_:陣列,給出每棵基礎決策樹。 方法: 1.fit():訓練模型 2.predict():模型預測 3.predict_log_proba():陣列,預測各個類別的概率對數值。 4.predict_proba():陣列,預測各個類別的概率值。 ''' from sklearn.ensemble import GradientBoostingRegressor GradientBoostingRegressor(loss='ls', learning_rate=0.1, n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_depth=3, min_impurity_decrease=0., min_impurity_split=None, init=None, random_state=None, max_features=None, alpha=0.9, verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto') ''' 引數含義: 1.loss:{'ls', 'lad', 'huber', 'quantile'}, optional (default='ls') 指定優化的損失函式。 (1).loss='ls':損失函式是平方損失函式 (2).loss='lad':損失函式為絕對值損失函式 (3).loss='huber':損失函式是上邊兩種損失函式的結合。 2.learning_rate : float, optional (default=0.1) 通過learning_rate縮減每個分類器的貢獻。在learning_rate和n_estimators之間需要權衡。 通常學習率越小,需要的基本分類器就越多,因此在learning_rate和n_estimators之間要有所折中。 學習率就是下面公式中的v: F_m(x)=F_m-1(x)+v*alpha_m*G_m(x) 其中G_m(x)就是第m個基本分類器。aplha_m是第m個基本分類器的係數。 3.n_estimators : int (default=100) 指定基本決策樹的數量。梯度提升對過擬合有很好的魯棒性,因此該值越大,效能越好。 4.max_depth : integer, optional (default=3) 指定每個基本決策樹的最大深度。最大深度限制了決策樹中的節點數量。 調整這個引數可以獲得更好的效能。 5.criterion : string, optional (default="friedman_mse") 評估節點分裂的質量指標。 6.min_samples_split : int, float, optional (default=2) 表示分裂一個內部節點需要的最少樣本數。 (1).如果為整數,則min_samples_split就是最少樣本數。 (2).如果為浮點數(0到1之間),則每次分裂最少樣本數為ceil(min_samples_split * n_samples) 7.min_impurity_decrease:float, optional (default=0.) 如果節點的分裂導致不純度的減少(分裂後樣本比分裂前更加純淨)大於或等於min_impurity_decrease,則分裂該節點。 個人理解這個引數應該是針對分類問題時才有意義。這裡的不純度應該是指基尼指數。 迴歸生成樹採用的是平方誤差最小化策略。分類生成樹採用的是基尼指數最小化策略。 加權不純度的減少量計算公式為: N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity) 其中N是樣本的總數,N_t是當前節點的樣本數,N_t_L是分裂後左子節點的樣本數, N_t_R是分裂後右子節點的樣本數。impurity指當前節點的基尼指數,right_impurity指 分裂後右子節點的基尼指數。left_impurity指分裂後左子節點的基尼指數。 8.min_impurity_split:樹生長過程中早停止的閾值。如果當前節點的不純度高於閾值,節點將分裂,否則它是葉子節點。 這個引數已經被棄用。用min_impurity_decrease代替了min_impurity_split。 9.init:BaseEstimator, None, optional (default=None) 一個基本分類器物件或者None,該分類器物件用於執行初始的預測。 如果為None,則使用loss.init_estimator. 10.random_state:int, RandomState instance or None, optional (default=None) (1).如果為整數,則它指定了隨機數生成器的種子。 (2).如果為RandomState例項,則指定了隨機數生成器。 (3).如果為None,則使用預設的隨機數生成器。 11.max_features:int, float, string or None, optional (default=None) 搜尋最佳劃分的時候考慮的特徵數量。 (1).如果為整數,每次分裂只考慮max_features個特徵。 (2).如果為浮點數(0到1之間),每次切分只考慮int(max_features * n_features)個特徵。 (3).如果為'auto'或者'sqrt',則每次切分只考慮sqrt(n_features)個特徵 (4).如果為'log2',則每次切分只考慮log2(n_features)個特徵。 (5).如果為None,則每次切分考慮n_features個特徵。 (6).如果已經考慮了max_features個特徵,但還是沒有找到一個有效的切分,那麼還會繼續尋找 下一個特徵,直到找到一個有效的切分為止。 (7).如果max_features < n_features,則會減少方差,增加偏差。 12. verbose:int, default: 0 如果為0則不輸出日誌資訊,如果為1則每隔一段時間列印一次日誌資訊 13.max_leaf_nodes:int or None, optional (default=None) 指定每顆決策樹的葉子節點的最大數量。 (1).如果為None,則葉子節點數量不限。 (2).如果不為None,則max_depth被忽略。 14.warm_start:bool, default: False 當為True時,則繼續使用上一次訓練的結果,增加更多的estimators來整合。 15.presort:bool or 'auto', optional (default='auto') 在訓練過程中,是否預排序資料加速尋找最佳劃分。 屬性: 1.feature_importances_:陣列,給出每個特徵的重要性。 2.oob_improvement_ : array, shape = [n_estimators] 陣列,給出了每增加一顆基本決策樹,在包外估計(即測試集上)的損失函式的改善情況(相對於上一輪迭代) 即損失函式的減少值。 3.train_score_:陣列,給出每增加一顆基本決策樹,在訓練集上的損失函式的值。 4.init:初始預測使用的分類器。 5.estimators_:陣列,給出每棵基礎決策樹。 ''' ''' scikit-learn基於隨機森林演算法提供了兩個模型: 1.RandomForestClassifier用於分類問題 2.RandomForestRegressor用於迴歸問題 ''' from sklearn.ensemble import RandomForestClassifier RandomForestClassifier(n_estimators=10, criterion="gini", max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_features="auto", max_leaf_nodes=None, min_impurity_decrease=0., min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None) ''' 隨機森林是一種元估計器,它在資料集的各個子樣本上擬合多個決策樹分類器, 並使用平均法來提高預測精度和控制過擬合。 引數含義: 1.n_estimators:integer, optional (default=10) 隨機森林中決策樹的數量 2.criterion:string, optional (default="gini") 評估節點分裂的質量指標。支援的標準有基尼指數和資訊增益。 3.max_depth:integer or None, optional (default=None) 指定樹的最大深度。如果為None,表示樹的深度不限。直到所有的葉子節點都是純淨的,即葉子節點 中所有的樣本點都屬於同一個類別。或者每個葉子節點包含的樣本數小於min_samples_split。 4.min_samples_split:int, float, optional (default=2) 表示分裂一個內部節點需要的最少樣本數。 (1).如果為整數,則min_samples_split就是最少樣本數。 (2).如果為浮點數(0到1之間),則每次分裂最少樣本數為ceil(min_samples_split * n_samples) 5.min_samples_leaf:int, float, optional (default=1) 整數或者浮點數,預設為1。它指定了每個葉子節點包含的最少樣本數。 如果為浮點數(0到1之間),每個葉子節點包含的最少樣本數為ceil(min_samples_leaf * n_samples) 6.max_features:int, float, string or None, optional (default="auto") 搜尋最佳劃分的時候考慮的特徵數量。 (1).如果為整數,每次分裂只考慮max_features個特徵。 (2).如果為浮點數(0到1之間),每次切分只考慮int(max_features * n_features)個特徵。 (3).如果為'auto'或者'sqrt',則每次切分只考慮sqrt(n_features)個特徵 (4).如果為'log2',則每次切分只考慮log2(n_features)個特徵。 (5).如果為None,則每次切分考慮n_features個特徵。 (6).如果已經考慮了max_features個特徵,但還是沒有找到一個有效的切分,那麼還會繼續尋找 下一個特徵,直到找到一個有效的切分為止。 7.max_leaf_nodes:int or None, optional (default=None) 指定每顆決策樹的葉子節點的最大數量。 (1).如果為None,則葉子節點數量不限。 (2).如果不為None,則max_depth被忽略。 8.min_impurity_decrease:float, optional (default=0.) 如果節點的分裂導致不純度的減少(分裂後樣本比分裂前更加純淨)大於或等於min_impurity_decrease,則分裂該節點。 加權不純度的減少量計算公式為: N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity) 其中N是樣本的總數,N_t是當前節點的樣本數,N_t_L是分裂後左子節點的樣本數, N_t_R是分裂後右子節點的樣本數。impurity指當前節點的基尼指數,right_impurity指 分裂後右子節點的基尼指數。left_impurity指分裂後左子節點的基尼指數。 9.min_impurity_split:樹生長過程中早停止的閾值。如果當前節點的不純度高於閾值,節點將分裂,否則它是葉子節點。 這個引數已經被棄用。用min_impurity_decrease代替了min_impurity_split。 10.bootstrap:boolean, optional (default=True) 建立決策樹時是否採用自助取樣 11.oob_score:bool (default=False) 是否使用包外樣本來估計泛化精度. 12.n_jobs:integer, optional (default=1) 指定並行執行的任務數。如果為-1,任務數與CPU核數相同。 13.verbose:int, optional (default=0) 控制決策樹構建過程的詳細程度。 如果為0則不輸出日誌資訊,如果為1則每隔一段時間列印一次日誌資訊 14.class_weight: dict, list of dicts, "balanced" (1).如果是一個字典,則字典給出了每個分類的權重,{class_label: weight} (2).如果為‘balanced’,則每個分類的權重與該分類在樣本集中出現的頻率成反比。 (3).如果為‘balanced_subsample’,則樣本集為自助取樣法產生的決策樹的訓練資料集, 每個分類的權重與該分類在採用生成的樣本集中出現的頻率成反比。 (4).如果為None,則每個分類的權重都為1. 屬性: 1.estimators_ : list of DecisionTreeClassifier 決策樹分類器列表,存放所有訓練過的決策樹。 2.classes_ : array of shape = [n_classes] or a list of such arrays 類別標籤 3.n_classes_ : int or list 類別數量 4.n_features_ : int 訓練時使用的特徵數量 5.n_outputs_ : int 訓練時輸出的數量 6.feature_importances_ : array of shape = [n_features] 特徵重要性 7.oob_score_ : float 訓練資料使用包外估計時的得分 方法: 1.fit():訓練模型 2.predict():預測 3.predict_log_proba():預測屬於各個類別的概率對數值 4.predict_proba():預測屬於各個類別的概率值。 ''' from sklearn.ensemble import RandomForestRegressor RandomForestRegressor(n_estimators=10, criterion="mse", max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0., max_features="auto", max_leaf_nodes=None, min_impurity_decrease=0., min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False) ''' 引數含義: 1.n_estimators:integer, optional (default=10) 隨機森林中決策樹的數量 2.criterion : string, optional (default="mse") 評估節點分裂的質量指標。支援的標準有MSE和MAE。 3.max_depth:integer or None, optional (default=None) 指定樹的最大深度。如果為None,表示樹的深度不限。直到所有的葉子節點都是純淨的,即葉子節點 中所有的樣本點都屬於同一個類別。或者每個葉子節點包含的樣本數小於min_samples_split。 4.min_samples_split:int, float, optional (default=2) 表示分裂一個內部節點需要的最少樣本數。 (1).如果為整數,則min_samples_split就是最少樣本數。 (2).如果為浮點數(0到1之間),則每次分裂最少樣本數為ceil(min_samples_split * n_samples) 5.min_samples_leaf:int, float, optional (default=1) 整數或者浮點數,預設為1。它指定了每個葉子節點包含的最少樣本數。 如果為浮點數(0到1之間),每個葉子節點包含的最少樣本數為ceil(min_samples_leaf * n_samples) 6.max_features:int, float, string or None, optional (default="auto") 搜尋最佳劃分的時候考慮的特徵數量。 (1).如果為整數,每次分裂只考慮max_features個特徵。 (2).如果為浮點數(0到1之間),每次切分只考慮int(max_features * n_features)個特徵。 (3).如果為'auto'或者'sqrt',則每次切分只考慮sqrt(n_features)個特徵 (4).如果為'log2',則每次切分只考慮log2(n_features)個特徵。 (5).如果為None,則每次切分考慮n_features個特徵。 (6).如果已經考慮了max_features個特徵,但還是沒有找到一個有效的切分,那麼還會繼續尋找 下一個特徵,直到找到一個有效的切分為止。 7.max_leaf_nodes:int or None, optional (default=None) 指定每顆決策樹的葉子節點的最大數量。 (1).如果為None,則葉子節點數量不限。 (2).如果不為None,則max_depth被忽略。 8.min_impurity_decrease:float, optional (default=0.) 如果節點的分裂導致不純度的減少(分裂後樣本比分裂前更加純淨)大於或等於min_impurity_decrease,則分裂該節點。 加權不純度的減少量計算公式為: N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity) 其中N是樣本的總數,N_t是當前節點的樣本數,N_t_L是分裂後左子節點的樣本數, N_t_R是分裂後右子節點的樣本數。impurity指當前節點的基尼指數,right_impurity指 分裂後右子節點的基尼指數。left_impurity指分裂後左子節點的基尼指數。 9.min_impurity_split:樹生長過程中早停止的閾值。如果當前節點的不純度高於閾值,節點將分裂,否則它是葉子節點。 這個引數已經被棄用。用min_impurity_decrease代替了min_impurity_split。 10.bootstrap:boolean, optional (default=True) 建立決策樹時是否採用自助取樣 11.oob_score:bool (default=False) 是否使用包外樣本來估計泛化精度. 12.n_jobs:integer, optional (default=1) 指定並行執行的任務數。如果為-1,任務數與CPU核數相同。 13.verbose:int, optional (default=0) 控制決策樹構建過程的詳細程度。 如果為0則不輸出日誌資訊,如果為1則每隔一段時間列印一次日誌資訊 屬性: 1.estimators_ : list of DecisionTreeRegressor 迴歸決策樹列表,存放所有訓練過的決策樹。 2.n_features_ : int 訓練時使用的特徵數量 3.n_outputs_ : int 訓練時輸出的數量 4.feature_importances_ : array of shape = [n_features] 特徵重要性 5.oob_score_ : float 訓練資料使用包外估計時的得分 6.ob_prediction_ : array of shape = [n_samples] 在訓練集上使用包外估計時的預測值。 方法: 1.fit():訓練模型 2.predict():預測 Notes: 控制樹大小的引數的預設值(例如``max_depth``,``min_samples_leaf``等)導致完全成長和未剪枝的樹, 這些樹在某些資料集上可能表現很好。為減少記憶體消耗,應通過設定這些引數值來控制樹的複雜度和大小。 '''