前言
因为内容不多,旨在读者几分钟内快速使用MLP分类自己的数据
直接上代码介绍
使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd#读数据
import joblib#保存模型
from sklearn.neural_network import MLPClassifier
2.模型使用
代码如下(示例):
mlp=MLPClassifier(solver='adam',activation='tanh',max_iter=1300,hidden_layer_sizes=(15,15))
mlp.fit(X,Y)#训练过程。X,Y分别为data和label
result=mlp.predict(X)#预测结果
print("score:",mlp.score(X,Y))#测试成绩
MLPClassifier部分参数说明:
1.优化算法:solver{‘lbfgs’,‘sgd’,‘adam’}
sgd:使用 sgd 参数来选择随机梯度下降算法,它基于每个训练样本的梯度更新模型参数。这是一种简单而有效的优化算法,但对于一些复杂的问题,它可能需要更多的时间和迭代才能收敛。
adam:,它结合了随机梯度下降和自适应学习率的策略。它能够在训练过程中自动调整学习率,在相对较大的数据集上效果比较好
lbfgs:用近似的Hessian矩阵来优化模型。对小数据集来说,lbfgs收敛更快效果也更好。
2.激活函数:activation={‘identity’,‘logistic’,‘tanh’,‘relu’,softmax}
relu:在计算上比较简单并且不会引起梯度消失的问题。
identity:线性函数直接返回输入值。它通常在最后一层用于回归问题。
logistic(Sigmoid):在二分类问题中常被用作输出层的激活函数。
tanh:类似于Sigmoid函数。
softmax:通常在多类别分类问题中用于输出层。
3.最大迭代数:max_iter,读者可根据结果警告内容更改迭代数大小来实现拟合。
4.L2正则化的权重:alpha。它代表正则化的强度。默认值是0.0001。如果你的模型出现过拟合现象(在训练集上表现很好,但在测试集上表现较差),你可以通过增加alpha的值来增强正则化效果。具体数值请读者自己测试决定。
5.hidden_layer_sizes 参数用于指定隐藏层的层数和每个隐藏层中神经元的数量。
例如:
hidden_layer_sizes = 100,表示有一个包含 100 个神经元的隐藏层。
hidden_layer_sizes = [100, 50],也表示有两个隐藏层,第一个隐藏层包含 100 个神经元,第二个隐藏层包含 50 个神经元。
通常情况下,增加隐藏层的层数和神经元的数量可以增加模型的表示能力,但也容易导致过拟合的问题。请读者根据实际情况调整。
提示
读取数据部分请读者根据自身实际情况,得到data、label两个numpy形式的矩阵放入函数中即可。
如果错误或需要补充的地方请大家指出!