人工神经网络(Artificial Neural Networks, ANN)是模拟生物神经网络进行信息处理的一种数学模型。

人工神经元模型

激活函数主要分为域值函数(阶梯函数)、分段线性函数、非线性转移函数、Relu函数(计算简单、效果佳)。

人工神经网络的学习也称为训练,指神经网络在收到外部环境的刺激下调整神经网络的参数,使神经网络以一种新的方式对外部环境做出反应的过程。

目前,已有多种人工神经网络模型,常用来分类和预测的算法有BP神经网络(学习算法是学习规则,即误差校正学习算法)

举例:

数据样本如下:

#使用神经网络预测销量高低
import pandas as pd
data = pd.read_excel("sales_data.xls",index_col=u'序号')data[data==u'好'] = 1
data[data==u'是'] = 1
data[data==u'高'] = 1
data[data!=1] = 0x = data.iloc[:,:3].as_matrix().astype(int)
y = data.iloc[:,3].as_matrix().astype(int)from keras.models import Sequential
from keras.layers.core import Dense,Activationmodel = Sequential() #建立模型
model.add(Dense(input_dim=3,output_dim=10))
model.add(Activation('relu')) #用relu函数作为激活函数,大幅提高准确度
model.add(Dense(input_dim=10,output_dim=1))
model.add(Activation('sigmoid')) #由于是0-1输出,用sigmoid函数作为激活函数model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
#编译模型。由于二元分类,损失函数为binary_crossentropy。
#另外常用的损失函数还有mean_squared_error、categorical_crossentropy等
#求解方法用adam,还有sgd、rmsprop可选model.fit(x,y,nb_epoch=1000,batch_size=10) #训练模型,学习一千次
model.predict_classes(x).reshape(len(y)) #分类预测def cm_plot(y, yp): #混淆矩阵可视化函数from sklearn.metrics import confusion_matrix #导入混淆矩阵函数cm = confusion_matrix(y, yp) #混淆矩阵import matplotlib.pyplot as plt #导入作图库plt.matshow(cm, cmap=plt.cm.Greens) #画混淆矩阵图,配色风格使用cm.Greens,更多风格请参考官网。plt.colorbar() #颜色标签for x in range(len(cm)): #数据标签for y in range(len(cm)):plt.annotate(cm[x,y], xy=(x, y), horizontalalignment='center', verticalalignment='center')plt.ylabel('True label') #坐标轴标签plt.xlabel('Predicted label') #坐标轴标签return pltcm_plot(y,yp).show()

输出结果如下:

可以看出预测准确率为25/34=73.5%,预测准确率较低,是由于神经网络训练需要较多样本,这里是由于训练数据较少造成的。

另外,神经网络的拟合能力是很强的,容易出现过拟合现象。目前流行的防止过拟合的方法是随机让部分神经网络节点休眠。

数据挖掘之人工神经网络相关推荐

  1. 数据挖掘之人工神经网络BP算法

    /*人工神经网络BP算法思想: 神经网络一般分为3层(也可以多层),包括输入层,隐含层和输出层.通过有监督的学习拟合非线性函数.假如输入层有3个神经元,隐含层有5个神经元,输出层有1个神经元.有监督的 ...

  2. 数据挖掘学习笔记之人工神经网络(一)

    由于本人这段时间在学习数据挖掘的知识,学习了人工神经网络刚好就把学习的一些笔记弄出来,也为以后自己回头看的时候方便些. 神经网络学习方法对于逼近实数值.离散值或向量值的目标函数提供了一种健壮性很强的方 ...

  3. 数据挖掘人工神经网络,神经网络的数据处理

    1.BP人工神经网络 人工神经网络(artificialneuralnetwork,ANN)指由大量与自然神经系统相类似的神经元联结而成的网络,是用工程技术手段模拟生物网络结构特征和功能特征的一类人工 ...

  4. 【Python数据分析】数据挖掘建模——分类与预测——人工神经网络

    人工神经网络(artificial neural networks,ANNs),是模拟生物神经网络进行信息处理的一种数学模型. 一.人工神经网络简介 更多关于神经网络的发展可以参考:人工神经网络简介_ ...

  5. 机器学习基础(一)——人工神经网络与简单的感知器

    机器学习基础(一)--人工神经网络与简单的感知器 (2012-07-04 19:57:20) 转载▼ 标签: 杂谈 分类: machineのlearning 从最开始做数据挖掘而接触人工智能的知识开始 ...

  6. BP人工神经网络的介绍与实现

    神经网络概念与适合领域 神经网络最早的研究是 40 年代心理学家 Mcculloch 和数学家 Pitts 合作提出的 ,他们提出的MP模型拉开了神经网络研究的序幕. 神经网络的发展大致经过 3 个阶 ...

  7. 机器学习:支持向量机SVM和人工神经网络ANN的比较

    在统计学习理论中发展起来的支持向量机(Support Vector Machines, SVM)方法是一种新的通用学习方法,表现出理论和实践上的优势.SVM在非线性分类.函数逼近.模式识别等应用中有非 ...

  8. 神经网络入门经典书籍,人工神经网络书籍推荐

    能推荐几本学习人工神经网络的经典教材吗? . <模式识别与机器学习>[加]SimonHaykin<神经网络与模式识别>[加]SimonHaykin(原<神经网络原理> ...

  9. 基于神经网络的人工智能,人工神经网络心得体会

    1.人工智能的学习思路是什么? 要学习人工智能,就要先了解清楚人工智能是什么.人工智能就是制造智能的机器,更特指制作人工智能的程序.人工智能模仿人类的思考方式使计算机能智能的思考问题,人工智能通过研究 ...

最新文章

  1. android动态设置错误页面,Android中替换WebView加载网页失败时的页面
  2. Android绘制自定义控件,Android自定义控件绘制基本图形基础入门
  3. javascript之ua与urlSchema
  4. Dapper源码学习和源码修改(下篇)
  5. SpringBoot —— @ComponentScan注解
  6. Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)
  7. Python实时获取鼠标下窗口文本
  8. java中的强制类型转换注意事项_浅谈Java中强制类型转换的问题
  9. 开启Golang编程第一章
  10. 拦截游戏窗口被移动_家中最值得购入的17款儿童游戏,教你如何从IPAD中夺回小朋友的注意力...
  11. SourceTree Win10 安装不成功解决过程记录
  12. Typora快捷键修改(Mac系统)
  13. LeetCode 247. 中心对称数
  14. 心酸的两天(1):Nacos 启动后输入默认密码后:“用户名或密码错误”
  15. SAP Enhancement POINT和Enhancement SECTION
  16. 计网自顶向下 学习笔记:Chap1
  17. pr使用中C盘空间变小
  18. CentOS7下安装配置zookeeper集群及设置开机自启
  19. 联通光猫上海贝尔阿尔卡特 100A-AA 刷 OpenWRT
  20. 适量饮酒,对身体好?医生说:恰恰相反!

热门文章

  1. c 语言 用矩形法求定积分,如何用矩形法(梯形法)求定积分
  2. codeforces1194B Yet Another Crosses Problem 思维
  3. SrpingCloud微服务 服务调用逻辑图
  4. Android自定义view之网易云推荐歌单界面
  5. 天涯明月刀无法显示服务器,天涯明月刀登录不进去怎么办 pc端手机端服务器已满怎么解决_游戏369...
  6. php如何打开excel文件,如何使用php获取excel文件数据
  7. Ubuntu 16.04 VCS+Verdi安装总结
  8. android电视 怎么调电视机的信号源,如何设置智能电视、盒子信号源?原来这么简单!具体方法如下...
  9. 以色列技术!Amimon无线WHDI技术解析
  10. 学计算机在职硕士,计算机在职研究生的学习方式有哪些?