MLPClassifier()

前言

注意看一下conda中默认下载的scikit-learn版本,0.17是不能导入这个库的。 所以要使用conda update scikit-learn命令进行升级(如果你是通过安装anaconda来使用sklearn包的话)。0.18版本之后就可以正常使用了。

全称是 Multi Layer Perception Classifier 这是sklearn库中一种神经网络的实现方式

参数

  • 隐含层数量及神经元数量
    • tuple类型,默认值是(100,)
    • 因为是隐含层,所以不包括输入输出两层
    • (a,b,c,)分别表示在第1,2,3层隐含层有a,b,c个神经元
  • 激活函数
    • 默认是'relu',f(x)=max(x,0)
    • 'identity',f(x) = x
    • 'logistic',f(x)=1/(1+exp(-x))
    • 'tanh',f(x)=tanh(x)
  • solver,权值优化
    • 默认是adam,基于随机梯度的优化方法
    • 'sgd', 随机梯度下降算法
    • 'lbfgs', 拟牛顿法
    • 注意:在相对较大的数据集上,adam算法效果较好(时间和精度),在较小的数据集上拟牛顿法的效果较好
  • alpha
    • 正则项,默认是0.0001
  • batch_size:
    • 默认是auto,size=min(200, n_samples)
  • learning_rate
    • 默认是constant
    • 'constant'要求用户输入学习率,在learning_rate_init参数中输入
    • 'invscaling'学习率逐渐下降,实际学习率是effective_learning_rate = learning_rate_init/pow(t, power_t).
    • 'adaptive',只要train过程中的损失函数得到的值一直在减小,就保持学习率不变。
  • max_iter
    • 最大迭代次数,权值优化过程,迭代终止条件是solver收敛(收敛值是tol,后边介绍)或者达到迭代次数
  • random_state:
    • 随机化的种子,默认是None
  • shuffle
    • 当solver使用sgd或者adam的时候,是否在每次迭代的时候shuffle样本。默认是True
  • tol
    • 容忍值。默认是0.0001
  • learning_rate_init
    • 初始化学习率,只有solver是sgd或者adam的时候才使用
  • power_t -用来逐渐减小学习率
  • verbose
    • 是否输出过程信息,默认是false
  • warm_start
    • 默认是false,当设置为true 的时候,使用前一过程的优化结果作为本次优化的初始值
  • momentum
    • 默认是0.9
    • sgd专用,用来梯度下降,值域是(0,1)
  • nesterovs_momentum
    • 当solver是sgd,且momentum>0的时候有效
  • early_stopping
    • 默认是false
    • 当使用sgd或者adam优化时候该参数有效。用来提前终止训练过程
    • 当设置为true的时候,算法自动将10%的数据设置为测试数据。
  • validation_fraction
    • 上个参数中将测试数据集划分为验证数据集的比例
  • beta_1,beta_2
  • epsilon

-

results matching ""

    No results matching ""