1. 程式人生 > >sklearn 神經網路MLPclassifier引數詳解

sklearn 神經網路MLPclassifier引數詳解

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) 設定此估算器的引數。