• 基于Python实现的MLPNN实验


    MLPNN实验报告

    一、数据处理

    本次实验数据集为 Breast cancer dataset

    通过sklearn.datasets获取数据

    cancer = load_breast_cancer()
    cancer_x=cancer.data
    cancer_y=cancer.target
    
    • 1
    • 2
    • 3

    查看数据大小即部分数据:

    print("加载完毕,数据大小:")
    print(cancer_x.shape)
    print(cancer_y.shape)
    print("前5个数据:")
    for i in range(5):
    print(cancer_x[i],cancer_y[i])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    breast cancer 的影响因素有30个,结果为0,1,表示是否患病

    对数据进行拆分, test_size=0.2:

    x_train,x_test,y_train, y_test=train_test_split(cancer_x,cancer_y,test_size=0.2)

    二、算法

    在这里插入图片描述

    如图为单层隐藏层的MLPNN模型示意图,输入层为数据集的数据,输出层为数据集的标签

    隐藏层神经元表示为:

    在这里插入图片描述

    每个单元发出它的激活函数:

    在这里插入图片描述

    输出层为:
    在这里插入图片描述

    每个单元输出其激活函数:

    在这里插入图片描述

    映射函数:

    在这里插入图片描述

    误差函数:

    平方和误差函数:

    在这里插入图片描述

    三、模型

    模型 MLPClassifier, 其中参数solver表示权重优化的求解器。'lbfgs’是准牛顿方法族的优化器;'sgd’指的是随机梯度下降。

    参数alpha是L2惩罚参数,默认值0.0001

    参数max_iter是最大迭代次数,默认值200

    参数hidden_layer_sizes是隐藏层神经元数,默认值(100,)

    四、结果

    在这里插入图片描述

    用‘sgd’的正确率为:0.921

    用‘lbfgs’的正确率为:0.947

  • 相关阅读:
    HTML&CSS
    Maven项目中如何引入本地的jar包
    「避坑宝典」为大家分享笔者在22 年所遇到“匪夷所思”的 Bug 趣事
    数学的魅力
    基于Dockerfile制作镜像
    操作系统学习笔记
    C++基础入门
    vue3中的吸顶导航交互实现 | VueUse插件
    设计模式——5. 原型模式
    Dubbo 框架搭建一个passport案例
  • 原文地址:https://blog.csdn.net/newlw/article/details/126859172