数据挖掘——回归分析2——简单神经网络的python实现

神经网络(Artificial Neural Network):全称为人工神经网络(ANN),是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型。

部分原理:

下面是单个神经元的数学模型:

+1代表偏移值(偏置项, Bias Units);X1,X2,X2代表初始特征;w0,w1,w2,w3代表权重(Weight),即参数,是特征的缩放倍数;特征经过缩放和偏移后全部累加起来,此后还要经过一次激活运算然后再输出。

最常见的激活函数是Sigmoid(S形曲线),Sigmoid有时也称为逻辑回归(Logistic Regression),简称logsig。logsig曲线的公式如下:

还有一种S形曲线也很常见到,叫双曲正切函数(tanh),或称tansig,可以替代logsig。

下面是它们的函数图形,从图中可以看出logsig的数值范围是0~1,而tansig的数值范围是-1~1。

在python中的实现:

对训练集的预处理与逻辑回归相同,从模型构建开始不同

###对训练集做预处理操作

###模型构建、训练、评分
from sklearn.neural_network import MLPClassifier

for i in range(1,11):
    ANNmodel = MLPClassifier(
            activation=‘relu‘,   #激活函数为relu,类似于s型函数
           hidden_layer_sizes=i)  #隐藏层为i
    ANNmodel.fit(inputData,outputData)  #训练模型
    score = ANNmodel.score(inputData,outputData)  #模型评分
    print(str(i) + ‘,‘ + str(score))  #每次循环都打印模型评分
#模型评分基本稳定在0.83x左右   

可以发现,隐藏层增大,模型评分趋于一个较稳定的值,即并非隐藏层越多,模型越好。

###对测试集做相同的预处理操作

###输入测试集作为参数
inputNewData = dummyNewData[dummySelect]
###得到预测结果,以序列形式进行输出
ANNmodel.predict(inputNewData)

原文地址:https://www.cnblogs.com/rix-yb/p/9751833.html

时间: 2024-10-23 11:18:22

数据挖掘——回归分析2——简单神经网络的python实现的相关文章

《卷积神经网络的Python实现》PDF代码+《解析深度学习卷积神经网络原理与视觉实践》PDF分析

CNN正在革新几个应用领域,如视觉识别系统.自动驾驶汽车.医学发现.创新电子商务等.需要在专业项目或个人方案中利用复杂的图像和视频数据集来实现先进.有效和高效的CNN模型. 深度卷积网络DCNN是目前十分流行的深度神经网络架构,它的构造清晰直观,效果引人入胜,在图像.视频.语音.语言领域都有广泛应用. 深度学习,特别是深度卷积神经网络是人工智能的重要分支领域,卷积神经网络技术也被广泛应用于各种现实场景,在许多问题上都取得了超越人类智能的结果. <卷积神经网络的Python实现>作为深度学习领域

神经网络的Python实现(一)了解神经网络

网络上深度学习相关博客教程质量参差不齐,很多细节很少有文章提到,所以本着夯实深度学习基础的想法写下此系列博文. 本文会从神经网络的概述.不同框架的公式推导和对应的基于numpy的Python代码实现等方面进行干货的讲解.如有不懂之处欢迎在评论留言,本人也初学机器学习与深度学习不久,有不足之处也请欢迎我联系.:) 推荐书籍与视频教程:<机器学习>-周志华<Deep learning>-Ian Goodfellow.Yoshua Bengio 和 Aaron Courville李宏毅深

Linear_regression与 Logistic_regression简单比较与python实现

Linear_regression与 Logistic_regression简单比较与python实现 好久没写博客了,在度厂实习期间更是天天累成了狗的节奏,最近有幸蹭到隔壁组老大小黑黑关于machine learning这块的培训(以下图片均摘自小黑黑的PPT),甚是感动,决定好好学习下这块的东西. Linear_regression 和 Logistic_regression 其实是非常相似的两种算法.它们都属于监督学习,都可以用梯度下降等方法进行参数的迭代学习等等. 他们最大的不同应该说是

三层BP神经网络的python实现

这是一个非常漂亮的三层反向传播神经网络的python实现,下一步我准备试着将其修改为多层BP神经网络. 下面是运行演示函数的截图,你会发现预测的结果很惊人! 提示:运行演示函数的时候,可以尝试改变隐藏层的节点数,看节点数增加了,预测的精度会否提升 1 import math 2 import random 3 import string 4 5 random.seed(0) 6 7 # 生成区间[a, b)内的随机数 8 def rand(a, b): 9 return (b-a)*random

非常简单实用的Python HTTP服务

在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦.这时候如果你需要一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助到你.使用Python可以完成一个简单的内建 HTTP 服务器.于是,你可以把你的目录和文件都以HTTP的方式展示出来.只需要干一件事情,那就是安装一个Python

python3----如何简单地理解Python中的if __name__ == &#39;__main__&#39;

1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '__main__'). if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行:当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行. 2. 程序入口

如何简单地理解Python中的if __name__ == &#39;__main__&#39;

1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '__main__'). if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行:当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行. 2. 程序入口

人工神经网络之Python 实战

引言:Python是最好最热门的编程语言之一,以简单易学.应用广泛.类库强大而著称,是实现机器学习算法的首选语言.本文以人工神经网络的实战为例,证明需要深入理解算法的原理.优劣势等特点以及应用场景,以能达到应用自如的程度.本文选自<Python大战机器学习:数据科学家的第一个小目标>. 在本次操作前,这里需要导入的包为: 感知机学习算法的原始形式 给出生成线性可分数据集的生成算法: 参数 ■n:正类的样本点数量,也是负类的样本点数量.总的样本点数量为2n. 返回值:所有的样本点组成的数组,形状

数据分析、数据挖掘、机器学习、神经网络、深度学习和人工智能概念区别(入门级别)

数据分析, 就是对数据进行分析, 得出一些结论性的内容, 用于决策. 分析什么哪? 根据分析现状. 分析原因. 预测未来. 分析现状和分析原因, 需要结合业务才能解释清楚. 用到的技术比较简单, 最简单的数据分析工具就是 Excel. 预测未来指的是分析未来一段时间的销售额之类的. 在预测未来方面, 一般用到数据挖掘的技术了. 数据挖掘, 从字面意思上看, 是从数据中挖掘出有价值的信息. 比如, 超市通过对一段时间的客户消费记录能发现, 哪些物品经常被顾客一起购买. 那么, 就可以把这些物品摆放