sklearn-神经网络

神经网络(1.17.2)
sklearn.neural_network.MLPClassifier
Multi-layer Perceptron classifier

参数:

1、hidden_layer_sizes : tuple, length = n_layers - 2, default (100,),第i个元素代表了第i个隐藏层中的神经元数目。

2、activation:{‘identity’,‘logistic’,‘tanh’,‘relu’}, default‘relu’,隐藏层的激活函数。‘identity’, no-op激活函数,对实现线性瓶颈很有用,returns f(x) = x。‘logistic’, logistic sigmoid函数,returns f(x) = 1 / (1 + exp(-x))。‘tanh’,双曲tan函数,returns f(x) = tanh(x)。‘relu’, the 修正的线性单位函数,returns f(x) = max(0, x)

3、solver : {‘lbfgs’,‘sgd’,‘adam’}, default‘adam’,求解权重的优化方法。‘lbfgs’是一种拟牛顿方法族的优化方法。‘sgd’代表随机梯度下降。‘adam’指的是由Kingma、Diederik和Jimmy Ba提出的基于随机梯度的优化器。注意:在相对较大的数据集(有数千个训练样本或更多)的训练时间和验证分数方面,默认的解析器“adam”工作得很好。然而,对于小型数据集,“lbfgs”可以更快地收敛,并且性能更好。

4、alpha : float, optional, default 0.0001,L2惩罚(正则化项)的参数。

5、batch_size : int, optional, default ‘auto’,小批量随机优化器的大小,如果“solver”是“lbfgs”,分类器将不会使用minibatch。当设置为“auto”时batch_size=min(200, n_samples)。小批量梯度下降的大小。

6、learning_rate : {‘constant’, ‘invscaling’, ‘adaptive’}, default ‘constant’,更新权重的学习率。只有当solver='sgd'时,可用。‘constant’,学习率是由‘learning_rate_init’给出的一个常量。‘invscaling’,逐步降低了学习率learning_rate,effective_learning_rate = learning_rate_init / pow(t, power_t)。‘adaptive’将学习率保持为learning_rate_init的常数,只要训练的损失持续减少。当连续两个时间段,训练的损失的减少都比tol小,或者不能提高至少tol的验证分数,如果‘early_stopping’设置为“True”,那么当前学习率将除以5。

7、learning_rate_init : double, optional, default 0.001,使用的初始学习率。它控制了更新权重时的步长。当solver=‘sgd’或者‘adam’时才可用。

8、power_t : double, optional, default 0.5,只有当solver='sgd'时,可用。它的指数和学习率成反比,当learning_rate被设置为“invscaling”时,它用于更新当前学习率。

9、max_iter : int, optional, default 200,最大迭代次数。这个solver将会不断迭代直到收敛(由tol决定),或者达到最大迭代次数max_iter。对于随机的solver(‘sgd’和‘adam’)。注意,它决定了epochs 的数量(这个数据点将被使用多少次),不是梯度的步骤数。

10、shuffle : bool, optional, default True,每次迭代时,样本是否重新洗牌,仅当solver=‘sgd’或者‘adam’时可用。

11、random_state : int, RandomState instance or None, optional, default None,随机种子。

12、tol : float, optional, default 1e-4,迭代停止条件。

13、verbose : bool, optional, default False,冗长输出。

14、warm_start : bool, optional, default False,热启动。

15、momentum : float, default 0.9,仅当solver=‘sgd’时,可用。梯度下降更新的动量。

16、nesterovs_momentum : boolean, default True,仅当solver=‘sgd’且momentum >0时,可用。是否使用Nesterov的动量法。

17、early_stopping : bool, default False,当solver=‘sgd’或者‘adam’时,有效。当验证分数不在提升时,是否使用早期停止来终止训练。如果设置为True,当验证分数至少在两个连续的时间内没有提高,它将自动留出10%的训练数据作为验证和终止训练。

18、validation_fraction : float, optional, default 0.1,仅当early_stopping设置为True时可用。训练数据的比例,作为早期停止的验证。必须在0到1之间。

19、beta_1 : float, optional, default 0.9,仅当solver=‘adam’时可用。adam中第一矩向量估计的指数衰减率。

20、beta_2 : float, optional, default 0.999,仅当solver=‘adam’时可用。adam中第二矩向量估计的指数衰减率。

21、epsilon : float, optional, default 1e-8,仅当solver=‘adam’时可用。adam中数值稳定性的值。

属性:
1、classes_ : array or list of array of shape (n_classes,),每个输出的类标签。

2、loss_ : float,用损失函数计算当前的损失。

3、coefs_ : list, length n_layers - 1,列表中的第i个元素代表了与第i层相对应的权重矩阵。

4、intercepts_ : list, length n_layers - 1,列表中的第i个元素代表了对应于i+1层的偏差向量。

5、n_iter_ : int,solver运行的迭代次数。

6、n_layers_ : int,层数。

7、n_outputs_ : int,输出的数目。

8、out_activation_ : string,输出激活函数的名称。

方法:
1、fit(X, y[, sample_weight, check_input, …]),拟合。
2、get_params([deep]),得到参数。
3、predict(X[, check_input]),预测。
4、predict_log_proba(X),预测输入样本X的对数概率。
5、predict_proba(X[, check_input]),预测输入样本X的概率。
6、score(X, y[, sample_weight]),返回给定测试数据和标签的平均精度。
7、set_params(**params),设置参数。

由于当solver的选择不同的时候,尤其是当solver=‘lbfgs’时,参数的差别比较大,因此将参数根据solver的不同分开讨论。
1、当solver=‘lbfgs’时,有很多参数都不起作用。
1,hidden_layer_sizes,随着隐藏层中神经元数目的增加,acc的值会有所增加,同时训练时间也会相对较长,而且acc的值的增加幅度会变小,因此,选择一个自己认为合适的就可以了。(保持默认)
2,激活函数activation,根据激活函数的不同acc会有一些变化不过不大。
3,正则化参数alpha,随着alpha的增加acc的值会有所增加,随后alpha继续增加,acc值就收敛了,略有下降之后就保持不变了。
4,max_iter最大迭代次数,随着迭代次数的增加,acc会有所增加,随后收敛,不在变化了。在我做的多次实验中,默认值200,都达到了收敛。(保持默认)
5,tol,迭代停止条件,随着值的减小acc会提高,随后收敛,不在变化。同样,在我做的多次实验中,tol的默认值都已经收敛了。(保持默认)
2、当solver=sgd时,还有一些参数不可用(针对adam)。
1,hidden_layer_sizes,随着隐藏层中神经元数目的增加,acc的值会有所增加,但是给出的默认值已经收敛,在增加神经元的数目,acc也不会提高了。(保持默认)
2,激活函数activation,根据激活函数的不同acc会有一些变化不过不大。
3,正则化参数alpha,随着alpha的减少acc的值会有所增加。随后acc到达最大值,然后alpha再减小acc反倒会略有降低,然后收敛,不再发生变化了。默认给出的alpha是一个极小的已经收敛的值。(保持默认就很好)
4,小批量梯度下降的批量大小,batch_size,随着值的增加acc会先增加在减少,用默认值“auto”效果就很好。(保持默认)
5,学习率learning_rate,可以尝试更换一下,正确率差别较大。
6,learning_rate_init,随着值的减少,acc会有所增加,然后达到收敛acc的值不在发生变化了。通常默认值很小,已经收敛。(保持默认)
7,max_iter,也一样,通常默认值已经收敛。(保持默认)
8,tol,迭代停止条件也一样,默认值已经收敛。(保持默认)
9,momentum,谨慎更改,感觉改动不大,但是正确率影响较大,默认值效果就很好。(保持默认)
10,nesterovs_momentum,Boolean值,true或者false会正确率影响都不大。(保持默认)
11,early_stopping,true或者false对正确率影响较大,谨慎修改。默认值false效果更好(我的实验里),保持默认。
12,validation_fraction,当early_stopping为true时才起作用,可以设置过去调节一下试一试,对正确率影响较大,总体不如early_stopping为false时效果好。
3、当solver=adam时,仍有一些不可用(针对sgd)。
1,hidden_layer_sizes,随着神经元数目的增加正确率会有所增加,随后收敛,但是总体来说感觉调节数值对acc影响不大。(保持默认)
2,activation,可以调节一下,影响不大。
3,alpha,随着alpha的减小acc有所增加,随后稍微降低达到收敛,默认值不是最优值,是一个收敛值。(保持默认)
4,batch_size,变化不大,auto效果就很好,保持默认。
5,learning_rate_init,收敛值,保持默认。
6,max_iter,收敛值,保持默认。
7,tol,收敛值,保持默认。
8,early_stopping和validation_fraction的变化规律和上面的一样,所以请保持默认。

可以看出,很多时候,默认的参数值就可以达到较好的效果,所以要我们费心思调的参数其实不多。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容