SVR
class sklearn.svm.SVR(*, kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001,
C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=- 1)
gamma是選擇RBF函數(shù)作為kernel后,該函數(shù)自帶的一個參數(shù)。隱含地決定了數(shù)據(jù)映射到新的特征空間后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的個數(shù)影響訓練與預測的速度。
C是懲罰系數(shù),即對誤差的寬容度。c越高,說明越不能容忍出現(xiàn)誤差,容易過擬合。C越小,容易欠擬合。C過大或過小,泛化能力變差
| 參數(shù) | 取值 | 類型 |
|---|---|---|
| kernel | -- linear:線性核函數(shù) -- poly:多項式核函數(shù) –rbf:徑像核函數(shù)/高斯核 –sigmod:sigmod核函數(shù) –precomputed:核矩陣,該矩陣表示自己事先計算好的,輸入后算法內(nèi)部將使用你提供的矩陣進行計算 |
str類型,默認rbf |
| degree | 當kernel為poly是,degree表示多項式核的最高次數(shù)(冪),其他核則忽略 | int,默認3 |
| gamma | 當kernel為‘rbf’, ‘poly’或‘sigmoid’時的kernel系數(shù)。 如果不設置,默認為 ‘a(chǎn)uto’ ,此時,kernel系數(shù)設置為:1/n_features | float, optional (default=’auto’) |
| tol | 誤差項達到指定值時則停止訓練,默認為1e-3,即0.001。 | float |
| C | 誤差項的懲罰參數(shù),一般取值為10的n次冪,如10的-5次冪,10的-4次冪。。。。10的0次冪,10,1000,1000,在python中可以使用pow(10,n) n=-5~inf C越大,相當于希望松弛變量接近0,即對誤分類的懲罰增大,趨向于對訓練集全分對的情況,這樣會出現(xiàn)訓練集測試時準確率很高,但泛化能力弱。 C值小,對誤分類的懲罰減小,容錯能力增強,泛化能力較強。 | float |
SGDRegressor
class sklearn.linear_model.SGDRegressor(loss='squared_loss', *, penalty='l2',
alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001,
shuffle=True, verbose=0, epsilon=0.1, random_state=None, learning_rate='invscaling',
eta0=0.01, power_t=0.25, early_stopping=False, validation_fraction=0.1,
n_iter_no_change=5, warm_start=False, average=False)
AdaBoostRegressor
class sklearn.ensemble.AdaBoostRegressor(base_estimator=None, *, n_estimators=50, learning_rate=1.0,
loss='linear', random_state=None)
| 參數(shù) | 取值 | 類型 |
|---|---|---|
| base_estimator | 基礎模型,默認為None,degree為3的決策樹 | model |
| n_estimators | 基礎模型的最大數(shù)量 | int,默認為50 |
| learning_rate | 即每個弱學習器的權重縮減系數(shù)??,我們的強學習器的迭代公式為????(??)=?????1(??)+??????????(??)。對于同樣的訓練集擬合效果,較小的??意味著我們需要更多的弱學習器的迭代次數(shù)。通常我們用步長和迭代最大次數(shù)一起來決定算法的擬合效果。所以這兩個參數(shù)n_estimators和learning_rate要一起調(diào)參 | float,默認為1 |
| loss | 只有AdaBoostRegression有,有線性‘linear’, 平方‘square’和指數(shù) ‘exponential’三種選擇, 默認是線性,一般使用線性就足夠了,除非你懷疑這個參數(shù)導致擬合程度不好。 |
RandomForest
sklearn.ensemble.RandomForestRegressor(n_estimators=100, *, criterion='mse',
max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0,
min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None,
random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)
| 參數(shù) | 取值 | 類型 |
|---|---|---|
| n_estimators | 最大的若學習器個數(shù) | int, default=100 |
| criterion | cart樹做劃分時對特征的評價標準,mse/mae | str,default='mse' |
| oob_score | 是否采用袋外樣本評估模型好壞 | bool,default=False |
| max_depth | 默認為空,表示不會限制決策樹的深度,如果樣本多特征多,一般設置最大深度10~100 | int,default=None |
| min_samples_split | 內(nèi)部節(jié)點再劃分所需要的最小樣本數(shù) | int,default=2 |
| min_samples_leaf | 葉子結點最少的樣本數(shù) | int,default=1 |
| min_weight_fraction_leaf | 葉子節(jié)點最小的樣本權重和 | float,default=0.0 |
| max_features | “auto”, “sqrt”, “l(fā)og2”,int or float, 劃分時最多考慮的特征個數(shù) | int, default='auto' |
| max_leaf_nodes | 最大葉子節(jié)點數(shù)量,防止過擬合 | int,default=None |
| min_impurity_split | 這個值限制了決策樹的增長,如果某節(jié)點的不純度(基于基尼系數(shù),均方差)小于這個閾值,則該節(jié)點不再生成子節(jié)點。即為葉子節(jié)點 。一般不推薦改動默認值1e-7 | float, default=1e-7 |
| bootstrap | 是否采用bootstrap采樣作為訓練集,若改為False,則使用全部樣本 | bool,default=True |
| n_jobs | 并行數(shù)量 | int,default=None,(1) |
GradientBoostingRegressor
class sklearn.ensemble.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.0, max_depth=3,
min_impurity_decrease=0.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,
validation_fraction=0.1, n_iter_no_change=None, tol=0.0001, ccp_alpha=0.0)
| 參數(shù) | 取值 | 類型 |
|---|---|---|
| loss | 'ls', 'lad', 'huber', 'quantile',算法中的損失函數(shù)。 | str,default='ls' |
| learning_rate | 每個弱學習器的權重衰減系數(shù) | float, default=0.1 |
| n_estimators | 最大的弱學習器的個數(shù) | int, default=100 |
| subsample | 取值(0,1],子采樣比例,若果<1,表示只有一部分樣本會參加GBDT的決策樹你和 | float, default=1 |
| criterion | 衡量特征劃分的函數(shù),‘friedman_mse’, ‘mse’, ‘mae’ | str,default='friedman_mse' |
其他參數(shù)用法同RandomForest。
| 參數(shù) | 取值 | 類型 |
|---|---|---|
| n_estimators | 最大弱學習器的個數(shù) | int, |
| booster | 弱學習器的類型,默認為gbtree(cart) | model,一般不需要改動 |
| max_depth | 控制樹的深度 | int |
| min_child_weight | 最小葉子節(jié)點權重閾值 | |
| gamma |
未完待續(xù)。。。