利用keras使用神经网络预测销量操作


Posted in Python onJuly 07, 2020

keras非常方便。

不解释,直接上实例。

数据格式如下:

序号 天气 是否周末  是否有促销  销量
1  坏  是  是  高
2  坏  是  是  高
3  坏  是  是  高
4  坏  否  是  高
5  坏  是  是  高
6  坏  否  是  高
7  坏  是  否  高
8  好  是  是  高
9  好  是  否  高
10 好  是  是  高
11 好  是  是  高
12 好  是  是  高
13 好  是  是  高
14 坏  是  是  低
15 好  否  是  高
16 好  否  是  高
17 好  否  是  高
18 好  否  是  高
19 好  否  否  高
20 坏  否  否  低
21 坏  否  是  低
22 坏  否  是  低
23 坏  否  是  低
24 坏  否  否  低
......

代码如下:

#-*- coding: utf-8 -*-
#使用神经网络算法预测销量高低
import pandas as pd
#参数初始化
inputfile = 'data/sales_data.xls'
data = pd.read_excel(inputfile, index_col = u'序号') #导入数据

#数据是类别标签,要将它转换为数据
#用1来表示“好”、“是”、“高”这三个属性,用0来表示“坏”、“否”、“低”
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)
print x
from keras.models import Sequential
from keras.layers.core import Dense, Activation,Dropout

model = Sequential()
model.add(Dense(64, input_shape=(3,)))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
       optimizer='rmsprop',
       metrics=['accuracy'])
#编译模型。由于我们做的是二元分类,所以我们指定损失函数为binary_crossentropy,以及模式为binary
#另外常见的损失函数还有mean_squared_error、categorical_crossentropy等,请阅读帮助文件。
#求解方法我们指定用adam,还有sgd、rmsprop等可选

model.fit(x, y, nb_epoch = 1000, batch_size = 10) #训练模型,学习一千次
yp = model.predict_classes(x).reshape(len(y)) #分类预测
10/34 [=======>......................] - ETA: 0s - loss: 0.3723 - acc: 0.8000
34/34 [==============================] - 0s - loss: 0.4470 - acc: 0.7647   
Epoch 1000/1000

结果为经过1000轮训练准确率为0.7647.

补充知识:利用Keras搭建神经网络进行回归预测

我就废话不多说了,大家还是直接看代码吧~

from keras.datasets import boston_housing
from keras import models
from keras import layers
 
(X_train, y_train), (X_test, y_test) = boston_housing.load_data()#加载数据
 
#对数据进行标准化预处理,方便神经网络更好的学习
mean = X_train.mean(axis=0)
X_train -= mean
std = X_train.std(axis=0)
X_train /= std
X_test -= mean
X_test /= std
 
#构建神经网络模型
def build_model():
  #这里使用Sequential模型
  model = models.Sequential()
  #进行层的搭建,注意第二层往后没有输入形状(input_shape),它可以自动推导出输入的形状等于上一层输出的形状
  model.add(layers.Dense(64, activation='relu',input_shape=(X_train.shape[1],)))
  model.add(layers.Dense(64, activation='relu'))
  model.add(layers.Dense(1))
  #编译网络
  model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
  return model
 
num_epochs = 100
model = build_model()
model.fit(X_train, y_train,epochs=num_epochs, batch_size=1, verbose=0)
predicts = model.predict(X_test)

在实际操作中可以用自己的数据进行测试,最终预测出的predicts,可以利用回归评价指标和y_test进行模型效果的评价。

以上这篇利用keras使用神经网络预测销量操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
多版本Python共存的配置方法
May 22 Python
Python基础知识_浅谈用户交互
May 31 Python
python+pandas分析nginx日志的实例
Apr 28 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
Python中的元组介绍
Jan 28 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
python三引号输出方法
Feb 27 Python
python分割一个文本为多个文本的方法
Jul 22 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
Python 如何实现访问者模式
Jul 28 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 Python
Python Mock模块原理及使用方法详解
Jul 07 #Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 #Python
PyTorch: Softmax多分类实战操作
Jul 07 #Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 #Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 #Python
Python基于httpx模块实现发送请求
Jul 07 #Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 #Python
You might like
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
smarty简单应用实例
2015/11/03 PHP
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Python中functools模块函数解析
2017/03/12 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
C语言面试题
2013/05/19 面试题
中专毕业生自我鉴定范文
2013/11/09 职场文书
优秀学生获奖感言
2014/02/15 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
安全教育第一课观后感
2015/06/17 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Java详细解析==和equals的区别
2022/04/07 Java/Android