代码来源:Python数据分析与挖掘实战
# -*- coding: utf-8 -*-
# 使用神经网络算法预测销量高低
import sys
reload(sys)
sys.setdefaultencoding('utf-8') #导入sys,重新设置编码格式主要是为了解决执行代码报:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 129: ordinal not in range(128)
import pandas as pd
from keras.models import Sequential #顺序模型
from keras.layers.core import Dense, Activation
from cm_plot import *
inputfile = '../data/sales_data.xls'
data = pd.read_excel(inputfile, index_col=u'序号')
data[data==u'好'] = 1
data[data==u'是'] = 1
data[data==u'高'] = 1
data[data!=1] = 0
x = data.iloc[:,:3].as_matrix().astype(int)
y = data.iloc[:,3].as_matrix().astype(int)
model = Sequential() #建立模型后可以使用.add来堆叠模型
model.add(Dense(input_dim=3, output_dim=10)) #建立的神经网络有3个输入节点、10个隐藏节点,添加输入层(3节点)到隐藏层(10节点)的连接
model.add(Activation('relu')) #用relu函数作为激活函数,能够大幅提供准确度
model.add(Dense(input_dim=10, output_dim=1)) #添加隐藏层(10节点)到输出层(1节点)的连接
model.add(Activation('sigmo