深度学习:基于Keras框架,使用神经网络模型对葡萄酒类型进行预测分析

news2024/11/26 22:25:11

在这里插入图片描述

前言

系列专栏:机器学习:高级应用与实践【项目实战100+】【2024】✨︎
在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学习模型、处理非结构化数据以及指导复杂的模型,如卷积神经网络、门控递归单元、大型语言模型和强化学习模型

本文旨在使用Keras等深度学习库,并熟悉神经网络的基础。

1. 数据集介绍

您可以从免费提供的UCI机器学习存储库中找到葡萄酒质量数据集。数据集由数据中包含的 12 个变量组成。其中少数如下——

  • 固定酸度: 总酸度分为两组:挥发性酸和非挥发性或固定酸。此变量的值在数据集中以 gm/dm3 表示。
  • 挥发性酸度: 挥发性酸度是葡萄酒变成醋的过程。在该数据集中,挥发性酸度以 gm/dm3 表示。
  • 柠檬酸: 柠檬酸是葡萄酒中的固定酸之一。它在数据集中以 g/dm3 表示。
  • 残糖: 残糖是发酵停止或停止后剩余的糖。它在数据集中以 g/dm3 表示。
  • 氯化物: 它可能是葡萄酒咸味的重要因素。此变量的值在数据集中以 gm/dm3 表示。
  • 游离二氧化硫: 它是添加到葡萄酒中的二氧化硫的一部分。此变量的值在数据集中以 gm/dm3 表示。
  • 总二氧化硫: 它是结合二氧化硫和游离二氧化硫的总和。此变量的值在数据集中以 gm/dm3 表示。

1.1 获取数据

# Import Required Libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Read in white wine data
white = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv", sep =';')

# Read in red wine data
red = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep =';')

1.2 红酒前五行数据

# First rows of `red`
red.head()

输出
在这里插入图片描述

1.3 白酒末五行数据

# Last rows of `white`
white.tail()

输出
在这里插入图片描述
取五行红酒的数据样本

# Take a sample of five rows of `red`
red.sample(5)

输出
在这里插入图片描述

1.4 数据描述

# Describe `white`
white.describe()

输出
在这里插入图片描述

1.5 检查红酒中的空值

# Double check for null values in `red`
pd.isnull(red)

输出
在这里插入图片描述

2. 酒精的分布(可视化探索性分析)

2.1 创建直方图

# Create Histogram
fig, ax = plt.subplots(1, 2)

ax[0].hist(red.alcohol, 10, facecolor ='red',
			alpha = 0.5, label ="Red wine")

ax[1].hist(white.alcohol, 10, facecolor ='white',
		ec ="black", lw = 0.5, alpha = 0.5,
		label ="White wine")

fig.subplots_adjust(left = 0, right = 1, bottom = 0, 
			top = 0.5, hspace = 0.05, wspace = 1)

ax[0].set_ylim([0, 1000])
ax[0].set_xlabel("Alcohol in % Vol")
ax[0].set_ylabel("Frequency")
ax[1].set_ylim([0, 1000])
ax[1].set_xlabel("Alcohol in % Vol")
ax[1].set_ylabel("Frequency")

fig.suptitle("Distribution of Alcohol in % Vol")
plt.show()

输出
在这里插入图片描述

2.2 拆分数据集来进行训练和验证

# Add `type` column to `red` with price one
red['type'] = 1

# Add `type` column to `white` with price zero
white['type'] = 0

# Concat `white` with `red`
wines = pd.concat([red,white], ignore_index = True)

# Import `train_test_split` from `sklearn.model_selection`
from sklearn.model_selection import train_test_split
X = wines.iloc[:, 0:11]
y = np.ravel(wines.type)

# Splitting the data set for training and validating 
X_train, X_test, y_train, y_test = train_test_split(
		X, y, test_size = 0.34, random_state = 45)

2.3 定义网络结构

# Import `Sequential` from `keras.models`
from keras.models import Sequential

# Import `Dense` from `keras.layers`
from keras.layers import Dense

# Initialize the constructor
model = Sequential()

# Add an input layer
model.add(Dense(12, activation ='relu', input_shape =(11, )))

# Add one hidden layer
model.add(Dense(9, activation ='relu'))

# Add an output layer
model.add(Dense(1, activation ='sigmoid'))

# Model output shape
model.output_shape

# Model summary
model.summary()

# Model config
model.get_config()

# List all weight tensors
model.get_weights()
model.compile(loss ='binary_crossentropy', 
optimizer ='adam', metrics =['accuracy'])

在这里插入图片描述

3. 模型训练和预测

# Training Model
model.fit(X_train, y_train, epochs = 3,
		batch_size = 1, verbose = 1)

# Predicting the Value
y_pred = model.predict(X_test)
print(y_pred)

输出
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构 - C/C++

快速跳转 数组链表栈队列串树 目录 数据结构 逻辑结构 物理结构 数据结构 数据 数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。 计算机可以理解并按照指定格式处理。 结构 元素相互之间存在一种或多种特定关系的数据集合。 …

Docker如何开启远程访问?

Docker是一种开源的容器化平台,通过将应用程序和其依赖项打包成容器,可以实现快速部署、弹性运行和简化管理。默认情况下,Docker的运行环境是局域网内的单机,但有时我们需要在不同地区的电脑、设备之间进行远程通信。本篇文章将介…

上市企业数字赋能指数数据集-2001到2022年(TF-IDF)

01、数据简介 上市公司数字赋能指数是一个用来衡量上市公司利用数字技术提高业务能力和效率的指标。这个指数反映了上市公司利用大数据、云计算和人工智能等数字技术,高效地利用商业资源和信息,并扩展供应关系的能力。市公司数字赋能指数是一种综合性的…

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab)

区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab) 目录 区间预测 | PSO-RF-KDE的粒子群优化随机森林结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基…

web安全---xss漏洞/beef-xss基本使用

what xss漏洞----跨站脚本攻击(Cross Site Scripting),攻击者在网页中注入恶意脚本代码,使受害者在浏览器中运行该脚本,从而达到攻击目的。 分类 反射型---最常见,最广泛 用户将带有恶意代码的url打开&a…

websocket 单点通信,广播通信

Websocket协议是对http的改进,可以实现client 与 server之间的双向通信; websocket连接一旦建立就始终保持,直到client或server 中断连接,弥补了http无法保持长连接的不足,方便了客户端应用与服务器之间实时通信。 参…

信息系统管理

目录 一、信息系统管理范围 1、规划和组织 2、设计和实施 ①、信息系统架构 Ⅰ、集中式架构 Ⅱ、分布式架构 Ⅲ、SOA(面向服务的系统架构) 3、运维和服务 ①、运行管理和控制 ②、IT服务管理 ③、运行与监控 Ⅰ、运行监控 Ⅱ、安全监控 4、…

【题解】—— LeetCode一周小结17

【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结16 22.组合总和 Ⅳ 题目链接:377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数…

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发,是一个分布式、支持分区(partition)的、多副本(replica)的,基于 Zookeeper 协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 hadoop 的…

SpringBoot 快速开始 Dubbo RPC

文章目录 SpringBoot 快速开始 Dubbo RPC下载 Nacos项目启动项目的创建创建主项目接口定义服务的创建Dubbo 服务提供者的创建服务的消费者创建 添加依赖给 Provider、Consumer 添加依赖 开始写代码定义接口在 Provider 中实现在 Consumer 里面使用创建启动类 注册中心配置启动 …

R-Tree: 原理及实现代码

文章目录 R-Tree: 原理及实现代码1. R-Tree 原理1.1 R-Tree 概述1.2 R-Tree 结构1.3 R-Tree 插入与查询 2. R-Tree 实现代码示例(Python)结语 R-Tree: 原理及实现代码 R-Tree 是一种用于管理多维空间数据的数据结构,常用于数据库系统和地理信…

党建3d互动虚拟现实网上展厅有何优势?

在数字化浪潮席卷全球的今天,企业如何迅速踏上虚拟世界的征程,开启元宇宙之旅?答案就是——3D虚拟云展。这一创新平台,华锐视点以虚拟现实技术和3D数字建模为基石提供3D云展搭建服务,助力企业轻松搭建起虚拟数字基础设施&#xf…

Rust Web开发实战:打造高效稳定的服务端应用

Rust Web开发实战:打造高效稳定的服务端应用 本书将带领您从零开始构建Web应用程序,无论是API、微服务还是单体应用,都将一一涵盖。您将学到如何优雅地对外开放API,如何连接数据库以安全存储数据,以及如何对应用程序进…

用结构体把驱动层和应用层分开

用正点原子代码的usmart分析,如下: usmart.h usmart_config.c 实例:把结构体与具体驱动绑定一起 /* 正点原子的usmart串口的封装 涉及文件:usmart.h usmart.c usmart_config.c 还有外面使用的文件(应用层调用&#xff…

Rocketmq 5 分级存储 Tieredstore(RIP-57、RIP-65) 原理详解 源码解析

1. 背景 RocketMQ 5.x 的演进目标之一是云原生化,在云原生和 Serverless 的浪潮下,需要解决 RocketMQ 存储层存在两个瓶颈。 数据量膨胀过快,单体硬件无法支撑存储的低成本和速度无法兼得 众多云厂商也希望提供 Serverless 化的 RocketMQ …

【源码阅读】 Golang中的database/sql库源码探究

Note:文章待完结 文章目录 前言一、整体目录结构二、driver包1、驱动相关driver.Driver2、驱动连接:driver.Conn3、预处理结构:Stmt4、执行结果 driver.Result5、查询结果:driver.Rows6、driver.RowsAffected7、driver.Value8、Va…

IDEA主题美化【保姆级】

前言 一款好的 IDEA 主题虽然不能提高我们的开发效率,但一个舒适简单的主题可以使开发人员更舒适的开发,时常换一换主题可以带来不一样的体验,程序员的快乐就这么简单。话不多说,先上我自己认为好看的主题设置。 最终效果图: 原…

《我们为什么爱喝酒》酒精如何决定人类社会成败 - 三余书屋 3ysw.net

我们为什么爱喝酒:酒精如何决定人类社会成败 大家好,今天我们要解读的书是《我们为什么爱喝酒?》,副标题是“酒精如何决定人类社会成败”。你平时会喝酒吗?你如何看待“喝酒有害健康”这一观点?欢迎在评论…

stm32单片机开发三、DMA

DMA其实就是一种将ADC的数据寄存器、串口的数据寄存器等等一些数据放到sram中特定位置,方便CPU去读取 比如ADC转换,DMA直接转换的ADC的值放在内存中的特定位置,CPU可以直接去读取 uint16_t AD_Value[4]; //定义用于存放AD转换结果的全局…

如何让用户听话?

​福格教授(斯坦福大学行为设计实验室创始人)通过深入研究人类行为20年,2007年用自己的名子命名,提出了一个行为模型:福格行为模型。 模型表明:人的行为发生,要有做出行为的动机和完成行为的能…