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
-