机器学习——python sklearn MLPClassifier

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guanyuqiu/article/details/85332180

函数说明:https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier

调用方法:

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)

参数说明:

1.hidden_layer_sizes:

          第i个元素表示第i个隐藏层的神经元的个数;

          例如hidden_layer_sizes=(50,50),表示有两层隐藏层,第一层隐藏层有50个神经元,第二层有50个神经元;

2.activation:

      激活函数

       {‘identity’,'logistic','tanh','relu'},默认‘relu‘;

  • 'identity':f(x)=x
  • 'logistic':sigmod函数f(x) =\frac{1}{1+exp(-x))}
  • 'tanh':f(x) = tanh(x)
  • 'relu':f(x)=max(0,x)

3.solver:

          {’lbfgs‘,’sgd‘,’adam‘},默认’adam‘,用来优化权重;

  • 'lbfgs':quasi-Newton方法的优化器;
  • 'sgd':随机梯度下降;
  • 'adam':kingma,Diederik,and Jimmy Ba提出的机遇随机梯度的优化器;

        注意:默认solver 'adam'在相对较大的数据集上效果比较好(几千个样本或更多),对小数据集来说,lbfgs收敛更快效果也更好。

4.alpha:

        float,可选的,默认0.0001,正则化项参数;

5.batch_size:

       int,可选的,默认'auto',随机优化的minibatches的大小,如果 solver是'lbfgs',分类器将不使用minibatch,当设置成'auto',batch_size=min(200,n_samples);

6.learning_rate:

          {'constant','invscaling','adaptive'},默认’constant‘,用于权重更新,只有当solver为’sgd‘时使用

  • 'constant':有'learning_rate_init'给定的恒定学习率;
  • 'invscaling':随着时间t使用'power_t'的逆标度指数不断降低学习率learning_rate_,effective_learning_rate=learing_rate_init/pow(t,power_t)
  • 'adaptive':只要训练损耗下降,就保持学习率为'learning_rate_init'不变,当连续两次不能降低训练损耗或验证分数停止升高至少tol时,将当前学习率除以5;

7.max_iter:

      int,可选,默认200,最大迭代次数;

8.random_state:

        int 或RandomState,可选,默认None,随机数生成器的状态或种子;

9.Shuffle:

        bool,可选,默认True,只有当solver='sgd'或'adam'时使用,判断是否在每次迭代时对样本进行清洗;

10.tol:

      float,可选,默认1e-4,优化的容忍度;

11.learning_rate_int:

      double,可选,默认0.001,初始学习率,控制更新权重的补偿,只有当solver='sgd'或'adam'时使用;

12.power_t:

     double,optional,default 0.5,只有solver='sgd'时使用,是逆扩展学习率的指数,当learning_rate='invscaling',用来更新有效学习率;

13.verbose:

      bool,optional,default False,是否将过程打印到stdout;

14.warm_stat:

      bool,optional,default False,当设置成True,使用之前的解决方法作为初始你喝,否则释放之前的解决方法;

15.momentum:

      float,default 0.9,Momentum(动量) for gradient descent update.should be between 0 and 1.Only used when solver='sgd';

16.nesterovs_momentum:

     boolean,default True, Whether to use Nesterov's momentum.Only used when solver='sgd' and momentum>0;

17.early_stopping:

       bool,default False,Only effective when solver='sgd' or 'adam',判断当前验证效果不再改善的时候是否终止训练,当为True 时,自动选出10%的训练数据用于验证并在两步连续迭代改善低于tol时终止训练;

18.validation_fraction:

        float,optional,default 0.1,用作早期停止验证的预留训练数据集的比例,早0-1之间,只当early_stopping=True游泳;

19.beta_1:

   float,optional,default 0.9,only used when solver='adam',估计一阶矩向量的指数衰减速率,[0,1)之间;

20.beta_2:

       float,optional,default 0.999,Only used when solver='adam',估计二阶矩向量的指数衰减速率[0,1)之间;

21.epsilon:

      float,optional,default 1e-8,only used when solver = 'adam'数值稳定值;

属性说明:

classes_:每个输出的类标签

loss_:损失函数计算出来的当前损失值;

coefs_:列表中的第i个元素表示i层的权重矩阵;

intercepts_:列表中第i个元素代表i+1层的偏差向量;

n_iter_:迭代次数

n_layers_:层数

out_activation_:输出激活函数的名称

方法说明:

fit(X,y):拟合

predict(X):使用MLP进行预测

predic_log_proba(X):返回对数概率估计

predic_proba(X):概率估计

score(X,y[,sample_weight]):返回给定测试数据和标签上的平均准确度

set_params(**params):设置参数

猜你喜欢

转载自blog.csdn.net/guanyuqiu/article/details/85332180
今日推荐