机器学习入门-神经网络模型

1.模型的构建

1.1数据准备

首先在构建模型前,我们需要准备训练数据和测试数据。

import pandas as pd
from random import shuffle
datafile='../model.xls'

#读入数据
data=pd.read_excel(datafile)
data=np.matrix(data)
#将数据的顺序打乱
shuffle(data)

#取80%的数据作为训练数据,20%的数据作为测试数据
p=0.8
train=data[:int(len(data)*p),:]
test=data[int(len(data)*p):,:]

1.2构建LM神经网络模型

此处书中的代码存在一些问题,我已经进行了修正,下列代码可直接运行。

# 导入神经网络初始化函数
from keras.models import Sequential
# 导入神经网络层函数,激活函数
from keras.layers.core import Dense,Activation

netfile='../net.model'

#初始化
#建立神经网络
net=Sequential()
#添加输入层链接
net.add(Dense(input_dim=3,output_dim=10))
#隐藏层使用激活函数relu
net.add(Activation('relu'))
#添加输出层链接
net.add(Dense(input_dim=10,output_dim=1))
#输出层使用sigmoid函数
net.add(Activation('sigmoid'))
#编译模型
net.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

#训练模型
net.fit(train[:,:3],train[:,3],nb_epoch=1000,batch_size=1)
net.save_weights(netfile)

#预测结果
predict_result=net.predict_classes(train[:,:3]).reshape(len(train))

1.3混淆矩阵可视化

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 plt

1.4调用混淆矩阵函数

cm_plot(train[:,3],predict_result).show()

1.5结果

混淆矩阵调用结果如下图。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值