sklearn 神經網路MLPclassifier引數詳解
阿新 • • 發佈:2018-11-03
class sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100, ), activation=’relu’, solver=’adam’, alpha=0.0001, batch_size=’auto’, learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10)[source]
引數 | 備註 |
---|---|
hidden_layer_sizes | tuple,length = n_layers - 2,預設值(100,)第i個元素表示第i個隱藏層中的神經元數量。 |
啟用 | {‘identity’,‘logistic’,‘tanh’,‘relu’},預設’relu’ 隱藏層的啟用函式:‘identity’,無操作啟用,對實現線性瓶頸很有用,返回f(x)= x;‘logistic’,logistic sigmoid函式,返回f(x)= 1 /(1 + exp(-x));‘tanh’,雙曲tan函式,返回f(x)= tanh(x);‘relu’,整流後的線性單位函式,返回f(x)= max(0,x) |
slover | {‘lbfgs’,‘sgd’,‘adam’},預設’adam’。權重優化的求解器:'lbfgs’是準牛頓方法族的優化器;'sgd’指的是隨機梯度下降。'adam’是指由Kingma,Diederik和Jimmy Ba提出的基於隨機梯度的優化器。注意:預設解算器“adam”在相對較大的資料集(包含數千個訓練樣本或更多)方面在訓練時間和驗證分數方面都能很好地工作。但是,對於小型資料集,“lbfgs”可以更快地收斂並且表現更好。 |
alpha | float,可選,預設為0.0001。L2懲罰(正則化項)引數。 |
batch_size | int,optional,預設’auto’。用於隨機優化器的minibatch的大小。如果slover是’lbfgs’,則分類器將不使用minibatch。設定為“auto”時,batch_size = min(200,n_samples) |
learning_rate | {‘常數’,‘invscaling’,‘自適應’},預設’常數"。 用於權重更新。僅在solver ='sgd’時使用。'constant’是’learning_rate_init’給出的恆定學習率;'invscaling’使用’power_t’的逆縮放指數在每個時間步’t’逐漸降低學習速率learning_rate_, effective_learning_rate = learning_rate_init / pow(t,power_t);只要訓練損失不斷減少,“adaptive”將學習速率保持為“learning_rate_init”。每當兩個連續的時期未能將訓練損失減少至少tol,或者如果’early_stopping’開啟則未能將驗證分數增加至少tol,則將當前學習速率除以5。 |
learning_rate_init | double,可選,預設為0.001。使用初始學習率。它控制更新權重的步長。僅在solver ='sgd’或’adam’時使用。 |
power_t | double,可選,預設為0.5。反縮放學習率的指數。當learning_rate設定為“invscaling”時,它用於更新有效學習率。僅在solver ='sgd’時使用。 |
max_iter | int,optional,預設值200。最大迭代次數。solver迭代直到收斂(由’tol’確定)或這個迭代次數。對於隨機解算器(‘sgd’,‘adam’),請注意,這決定了時期的數量(每個資料點的使用次數),而不是梯度步數。 |
shuffle | bool,可選,預設為True。僅在solver ='sgd’或’adam’時使用。是否在每次迭代中對樣本進行洗牌。 |
random_state | int,RandomState例項或None,可選,預設無隨機數生成器的狀態或種子。如果是int,則random_state是隨機數生成器使用的種子;如果是RandomState例項,則random_state是隨機數生成器;如果為None,則隨機數生成器是np.random使用的RandomState例項。 |
tol | float,optional,預設1e-4 優化的容忍度,容差優化。當n_iter_no_change連續迭代的損失或分數沒有提高至少tol時,除非將learning_rate設定為’adaptive’,否則認為會達到收斂並且訓練停止。 |
verbose | bool,可選,預設為False 是否將進度訊息列印到stdout。 |
warm_start | bool,可選,預設為False,設定為True時,重用上一次呼叫的解決方案以適合初始化,否則,只需擦除以前的解決方案。請參閱詞彙表。 |
momentum | float,預設0.9,梯度下降更新的動量。應該在0和1之間。僅在solver ='sgd’時使用。 |
nesterovs_momentum | 布林值,預設為True。是否使用Nesterov的勢頭。僅在solver ='sgd’和momentum> 0時使用。 |
early_stopping | bool,預設為False。當驗證評分沒有改善時,是否使用提前停止來終止培訓。如果設定為true,它將自動留出10%的訓練資料作為驗證,並在驗證得分沒有改善至少為n_iter_no_change連續時期的tol時終止訓練。僅在solver ='sgd’或’adam’時有效 |
validation_fraction | float,optional,預設值為0.1。將訓練資料的比例留作早期停止的驗證集。必須介於0和1之間。僅在early_stopping為True時使用 |
beta_1 | float,optional,預設值為0.9,估計一階矩向量的指數衰減率應為[0,1)。僅在solver ='adam’時使用 |
beta_2 | float,可選,預設為0.999,估計一階矩向量的指數衰減率應為[0,1)。僅在solver ='adam’時使用 |
epsilon | float,optional,預設值1e-8, adam穩定性的價值。 僅在solver ='adam’時使用 |
n_iter_no_change | int,optional,預設值10,不符合改進的最大曆元數。 僅在solver ='sgd’或’adam’時有效 |
屬性 | 備註 |
---|---|
classes_ | array or list of array of shape (n_classes,)每個輸出的類標籤。 |
loss_ | float,使用損失函式計算的當前損失。 |
coefs_ | list,length n_layers - 1,列表中的第i個元素表示對應於層i的權重矩陣。 |
intercepts_ | list,length n_layers - 1,列表中的第i個元素表示對應於層i + 1的偏置向量。 |
n_iter_ | int,迭代次數。 |
n_layers_ | int,層數。 |
n_outputs_ | int,輸出的個數。 |
out_activation_ | string,輸出啟用函式的名稱。 |
方法 | 備註 |
---|---|
fit(X,y) | 使模型適合資料矩陣X和目標y。 |
get_params([deep]) | 獲取此估算器的引數。 |
predict(X) | 使用多層感知器分類器進行預測 |
predict_log_proba(X) | 返回概率估計的對數。 |
predict_proba(X) | 概率估計。 |
score(X,y [,sample_weight]) | 返回給定測試資料和標籤的平均準確度。 |
set_params(** params) | 設定此估算器的引數。 |