期末作业实验报告:MLP实验对比(MLPClassifier)
工程构建
- 导入
sklearn
相关包
import numpy as np
rom sklearn.neural_network import MLPClassifier
- 定义
readDataSet(fileName, isTest)
函数,用于加载训练数据,返回特征数据(dataSet)和标签(label)
# fileName: 文件名字
# isTest: =True为测试数据时,只有54列,label直接设0
def readDataSet(fileName, isTest):fr = open(fileName,encoding='utf-8')lines = fr.readlines()numLabels = len(lines) labels = np.zeros(numLabels) #用于存放标签数据dateSet = np.zeros([numLabels,54],int) #用于存放特征数据# 逐行读取数据到dataSet,labels# 总共55列,前54列是样本特征,最后一列是样本类别(label)for i in range(numLabels):line = lines[i]label = 0if isTest: #True:测试集只有54列,最后标签直接设为0label = 0else: # False:取最后一列为标签数据label = line.split(' ')[54]labels[i] = labeldates = np.zeros(54)for j in range(53): # 前54列添加为特征数据dates[j] = line.split(' ')[j]dateSet[i] = datesfr.close()return dateSet,labels
添加isTest
参数是为了区别训练集(55列)与测试集数据(54列)列数不同,便于交叉验证时,统计错误数量,核算正确率.
- 加载训练数据
train_dataSet,train_labels = readDataSet('data_train.txt', False)
- 构建神经网络
设置网络的隐藏层数、各隐藏层神经元个数、激活函数、学习率、优化方法、最大迭代次数
clf = MLPClassifier(hidden_layer_sizes=(100,),activation='logistic', solver='adam',learning_rate_init = 0.0001, max_iter=2000)
print(clf)
clf.fit(train_dataSet,train_labels)
- 加载测试集,使用构建好的KNN分类器对测试集进行预测
test_dataSet,test_labels = readDataSet('data_test.txt', False)
res = clf.predict(test_dataSet)
error = 0
for i in range(len(res)):if res[i] != test_labels[i]:error += 1
print('error:',error,'正确率:',(len(res) - error) / len(res))
邻居数量K影响对比
- 情况一:使用
logistic
激活函数和adam
优化方法,设初始学习率为0.0001,最大迭代次数为2000
运行神经元个数为50、100、200的实验对比结果
n_hidden_layer_sizes | 50 | 100 | 200 |
---|---|---|---|
正确率 | 78% | 80% | 83% |
随着隐藏层神经元个数的增加,MLP的正确率持上升趋势
- 情况二:使用
adam
优化方法,设神经元个数为100,初始学习率为0.0001,最大迭代次数为2000
运行激活函数分别为logistic、identity、tanh、relu的实验对比结果
activation | identity | relu | tanh | logistic |
---|---|---|---|---|
正确率 | 59% | 61% | 75% | 80% |
我们可以看出logistic
的正确率最高
- 情况三:使用
logistic
激活函数和adam
优化方法,设神经元个数为100,初始学习率为0.0001
运行最大迭代次数为500、1000、1500、2000的实验对比结果
max_iter | 500 | 1000 | 1500 | 2000 |
---|---|---|---|---|
错误数 | 8125 | 7690 | 7805 | 7812 |
正确率 | 59% | 61% | 75% | 80% |
当最大迭代次数> 1500时,正确率基本保持不变,这说明MLP在第1500迭代时已经收敛
期末作业实验报告:MLP实验对比(MLPClassifier)相关推荐
- java实验报告2013_java实验报告4
Object eventSource = e.getSource(); if(eventSource == menuItem[0]) //新建动作 { textArea.setText("& ...
- 计算机网络ospf实验报告,计算机网络实验报告12_ospf实验
计算机网络实验报告12_ospf实验 (18页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 警示1?实验报告如有雷同,雷同各方当次实验成绩 ...
- 计算机网络信息安全的实验报告,网络安全实验报告.doc
网络安全实验报告 本科实验课程报告 (2016至2017学年第1学期) 课程名称: 网络信息安全 专业名称: 行政班级: 学 号: 姓 名: 指导教师: 赵学民 报告时间: 年 月 日 实验大纲 一. ...
- 计算机组成原理实验pc,计算机组成原理实验报告5- PC实验
计算机组成原理实验报告5- PC实验 2.5 PC实验 姓名:孙坚 学号:134173733 班级:13计算机 日期:2015.5.15 一.实验要求:利用CPTH 实验仪上的K16..K23 开关做 ...
- java数组实验报告_Java实验一实验报告
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<><>课程 ...
- 2017—2018 实验报告:实验一
实验一:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:9月25日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...
- android消息响应实验报告,android实验一实验报告-20210401011015.docx-原创力文档
Last revision on 21 December 2020 Last revision on 21 December 2020 Android实验一实验报告 Android实验报告一 姓名:丁 ...
- 微型计算机广告牌实验报告,微型计算机实验报告1资料.doc
实验报告 1. 实验名称 程序编译及调试 2. 实验目的 掌握汇编语言语句格式,程序结构,上机调试步骤和各种类型程序的设计方法.了解汇编语言的基本语法,汇编程序的功能和汇编,调试过程,伪指令,汇编语言 ...
- c语言递归算法实验报告,递归算法实验报告.docx
递归算法实验报告 递归算法实验报告 篇一:递归算法的设计和实现的实验报告 班级学号 姓名 实验组别 试验日期 室温 报告日期成绩 报告内容:(目的和要求.原理.步骤.数据.计算.小结等) 实验名称:递 ...
- java面向对象编程基础实验报告_20155313 实验三《Java面向对象程序设计》实验报告...
一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器>课程 2.完成实验.撰写实验报 ...
最新文章
- php curl viewstate,php curl – 发布asp.net viewstate值
- 从上海到旧金山,2021 LiveVideoStackCon回归上海
- log4net保存到数据库系列二:独立配置文件中配置log4net
- 源码编译安装Apache-附一键部署脚本
- C语言之枚举的定义以及测试
- 怎么将表中的空格都转变为0???
- 阿里Java面经大全(整合版)
- 互联网+智慧用电:智能微型断路器应用发展浅析-李亚俊
- 收藏:通俗讲解计算机工作原理
- R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术
- 蚁景网络安全渗透测试工程师特训班学习记录
- 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)
- 纯css饼图,使用css3画饼图
- EasyCVR通过GB28181级联到紫光华智综合安防应用平台无法注册成功问题排查
- 金融数据分析与挖掘具体实现方法 -1
- 水香木鱼书写PPT总结
- 高中数学基础-2.3幂函数
- LeetCode50——一题学会快速幂算法
- java ppt转换为html5,Apache POI PPT - PPT转换为图片
- Ceph -存储部署 ;
热门文章
- 9.16日常学习笔记
- Android项目“error: Apostrophe not preceded by \ (”报错解决方法
- Xmy的第二次python(文件操作)
- 循环彩灯c语言程序,PLC彩灯实例,一个简单的顺序控制
- pcm数据编码成为aac格式文件(可以在酷狗播放)
- BZOJ 1208 宠物收养所 Splay树
- 计算机count是什么函数,计算机里COUNT是什么函数?怎么用的?好评!!
- SQL Server 数据库之分离和附加数据库
- IceSword 1.18 by PJF
- 初学JAVA-3-重新定义和第一个JAVA手工程序