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

Posted 没有神保佑的瓶子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘——回归分析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)

 

 





以上是关于数据挖掘——回归分析2——简单神经网络的python实现的主要内容,如果未能解决你的问题,请参考以下文章

《用Python玩转数据》项目—线性回归分析入门之波士顿房价预测

[Pytorch系列-25]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 2

四月份课程推荐!

[Pytorch系列-24]:神经网络基础 - 单个无激活函数的神经元实现简单线性回归 - 1

Python数据挖掘课程九.回归模型LinearRegression简单分析氧化物数据

R语言实现CNN(卷积神经网络)模型进行回归数据分析