使用神经网络实现葡萄酒数据集的分类分析

3 篇文章 0 订阅
订阅专栏

目录

一、实验目的

二、实验环境

三、实验内容和过程


一、实验目的

  1. 掌握神经网络及深度学习建模分析
  2. 掌握使用神经网络实现分类的方法
  3. 掌握使用Keras框架实现深度学习的方法
  4. 了解各分类器之间的差异

二、实验环境

 操作系统:Windows

 应用软件:anaconda jupyter

三、实验内容和过程

关于solver:

-lbfgs:机器学习中解决函数最优化问题比较常用的手段,在牛顿法基础上提出的一种求解函数根的算法。  牛顿法与拟牛顿法学习笔记(五)L-BFGS 算法_皮果提的博客-CSDN博客_bfgs算法

-sgd:随机梯度下降,每次选择一个mini-batch,而不是全部样本,使用梯度下降来更新模型参数。它解决了随机小批量样本的问题。 

-adam: Kingma, Diederik, and Jimmy Ba提出的机遇随机梯度的优化器,基本解决了之前提到的梯度下降的一系列问题,比如随机小样本、自适应学习率、容易卡在梯度较小点等问题。  注意:默认solver ‘adam’在相对较大的数据集上效果比较好(几千个样本或者更多),对小数据集来说,lbfgs收敛更快效果也更好。 

关于activation(p121):

-identity:f(x) = x 

-logistic:其实就是sigmod,f(x) = 1 / (1 + exp(-x))

-tanh:f(x) = tanh(x)

-relu:f(x) = max(0, x) 

例题1:使用神经网络实现葡萄酒数据集的分类分析,分类值为葡萄酒质量,(1-10之间),选择不同的优化权重算法(solver)进行模型比较并分析。 (包含模型分类评估) *使用“quality”列

代码如下(示例):

#第一步 读入数据,划分训练集和测试集
import pandas as pd
import numpy as np
filename='data\wine.csv'
data=pd.read_csv(filename,index_col='idx')
data.drop('good_or_not',axis=1,inplace=True)
x = data.drop('quality', axis=1).values.astype(float)
y = data['quality'].values.astype(float)
from sklearn import model_selection#分割训练集和测试集
X_train,X_test,y_train,y_test = model_selection.train_test_split(x,y,test_size=0.5,random_state=1)#划分训练/测试集
print(X_train)

结果:

#第二步 创建神经网络分类器,训练网络节点连接权重及偏置项(此处用到lbfgs函数)
from sklearn.neural_network import MLPClassifier
mlp = MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5, 5),random_state=1)#表示有两个隐藏层,每层神经元个数分别为3、3
mlp.fit(X_train,y_train)
print(mlp.score(X_test,y_test))#mlp.score查看模型评分,返回给定测试数据和标签上的平均准确度 

结果: 

#第三步 分类器性能评估
from sklearn import metrics
y_predicted = mlp.predict(X_test)
print("Classification report for %s" % mlp)
print(metrics.classification_report(y_test, y_predicted) )
print( "Confusion matrix:\n", metrics.confusion_matrix(y_test, y_predicted) )

#重新计算,修改为sgd函数
#创建神经网络分类器,训练网络节点连接权重及偏置项
mlp = MLPClassifier(solver='sgd',alpha=1e-5,hidden_layer_sizes=(3,3),random_state=1)#表示有两个隐藏层,每层神经元个数分别为3、3
mlp.fit(X_train,y_train)
print(mlp.score(X_test,y_test))#mlp.score查看模型评分,返回给定测试数据和标签上的平均准确度 

 结果:

#分类器性能评估
y_predicted = mlp.predict(X_test)
print("Classification report for %s" % mlp)
print(metrics.classification_report(y_test, y_predicted) )
print( "Confusion matrix:\n", metrics.confusion_matrix(y_test, y_predicted) )

 Keras是一个使用Python开发的多层神经网络API,能方便地以开源深度学习库,作为后端运行。Keras具有高度模块化、简单及可扩充等特性,支持简易和快速的原型设计。
   Keras采用模型构建神经网络。序贯(Sequential)模型是简单的线性模型,由多个网络层按输出顺序线性堆叠而成,只有一个输出。函数式(Functional)模型则在序列模型的基础上,允许用户定义多输出、非循环有向或具有共享层的结构。

基于Keras训练神经网络模型可以按照以下三个步骤进行(以序贯模型为例):
•定义神经网络的结构,说明组成网络的层类型、参数;
•定义神经网络的损失函数、优化器、性能评估指标,并编译模型;
•使用数据集训练模型、预测、性能分析。 

1.Keras模型常用层 基于Keras构建神经网络一般包括以下通用层。

(1)Dense层:全连接层,其节点与下一层节点完全连接。 Dense(units,input_dim,…)

(2)Activation层:激活层,对上一层的输出施加激活函数。常见的激活函数有softmax,relu,tanh,sigmoid等。

(3)Dropout层:中断层,在训练过程中,每次更新参数时按照一定的概率,随即断开给定百分比(p)的输入神经元连接,用于防止过拟合。

2.Keras模型常用函数 Keras提供了神经网络模型编译、训练及性能评估的各类函数,使用方法如下。

(1)模型编译:model.compile(loss,optimizer,metrics,…)

(2)模型训练: model.fit(x,y,batch_size,epochs,verbose,validation_split,validation_data,…)

(3)模型评估:model.evaluate(x_test,y_test,verbose,...) 返回模型指定的loss和metrics。

(4)模型预测:model.predict(x_test,verbose,...)

例题2:基于Keras建立深度神经网络模型,采取不同的数据集划分比例(9:1,8:2,7:3),为葡萄酒数据集训练分类器并进行分析。(包含模型分类性能的评估)

*使用“good_or_not”列(此处仅展示比例为9:1的情况)

import pandas as pd
filename='data\wine.csv'
data=pd.read_csv(filename,index_col='idx')
data.loc[data['good_or_not']=='good','good_or_not']=1
data.loc[data['good_or_not']=='not','good_or_not']=0
data.drop('quality',axis=1,inplace=True)
x = data.drop('good_or_not', axis=1).values.astype(float)
y = data['good_or_not'].values.astype(float)
from keras.models import Sequential
from keras.layers import Dense, Activation
import numpy as np
from sklearn.model_selection import train_test_split
# 定义模型结构
model = Sequential()
model.add(Dense(units=16, input_dim=11))
model.add(Activation('relu'))
model.add(Dense(16))
model.add(Activation('relu'))
model.add(Dense(3))
model.add(Activation('softmax'))
#定义模型损失函数和优化器,并编译
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=["accuracy"])
#1、深度学习模型,输入输出都为多维张量,统一使用小写字母 x,y,划分比例9:1
x_train, x_test, y_train, y_test= train_test_split(x, y, train_size=0.9, test_size=0.1, random_state=0)
from keras.utils import np_utils
y_train_ohe = np_utils.to_categorical(y_train, num_classes = 3)
y_test_ohe = np_utils.to_categorical(y_test, num_classes = 3)
#2、模型的训练及评估
model.fit(x_train, y_train_ohe, epochs=20, batch_size=1, verbose=2, validation_data=(x_test,y_test_ohe))

#3、评估模型
loss, accuracy = model.evaluate(x_test, y_test_ohe,verbose=2)
print('loss = {},accuracy = {} '.format(loss,accuracy) )

#4、查看预测结果
prob = model.predict(x_test,verbose=2)
#classes = model.predict_classes(x_test,verbose=2)
classes=np.argmax(prob,axis=1)
print('测试样本数:',len(classes))
print("分类概率:\n",prob)
print("分类结果:\n",classes)
from sklearn.metrics import classification_report
print('分类性能报告如下:')
print(classification_report(list(y_test),list(classes)))

sklearn神经网络/BP神经网络实现葡萄酒分类问题
ayangann915的博客
03-29 1万+
葡萄酒分类问题:数据集葡萄酒三个种类,13种特征 1. Title of Database: Wine recognition data Updated Sept 21, 1998 by C.Blake : Added attribute information 2. Sources: (a) Forina, M. et al, PARVUS - An Extendible Packa...
BP神经网络算法及其在葡萄酒种类识别中的应用
10-11
随着我国葡萄酒业的逐步发展,葡萄酒生产企业的规模和数量不断扩大。但中国的葡萄酒业仍面临着进口酒的激烈竞争以及质量检测体系不明确带来的市场紊乱。针对这些问题,本文分析葡萄酒质量人工品尝存在的不足,并提出了如何提高基于数据挖掘技术的葡萄酒质量等级的识别率,对中国葡萄酒市场的稳定发展以及更好地酿造出高质量的葡萄酒有着实际的应用价值。在数据挖掘中,经常会遇到不平衡数据的分析。相对于多数类来说,少数类样本对准确率的影响力小,这意味着对所有样本进行分类,可以在不识别出任何少数类样本的情况下得到很高的正确率,识别少数类的分类规则也就被忽略了。本文的创新点在于从不平衡样本中提取平衡样本进行建模并对测试样本预测,进行多次的循环,得到多次的预测结果,选择次数出现最多的预测结果作为最终的预测结果,大大提高了低质量葡萄酒的识别率。本文采用BP神经网络葡萄酒种类进行模式识别,通过对在意大利同一区域里三种的葡萄酒的化学成分分析,数据含有178个样本,每个样本含有13个特征分量,每个样本的类别标签已定。其中将这178个样本的65%作为训练样本,另外35%作为测试样本,用训练样本对BP神经网络进行训练可以得到相对应的分类模型,在利用训练好的模型对测试样本进行分类识别。
基于前馈神经网络FNN实现葡萄酒类型分类Acc99%(PyTorch版)
最新发布
君子不器 大道无方
09-10 935
葡萄酒,作为一种历史悠久、文化底蕴深厚的饮品,不仅在全球范围内拥有广泛的爱好者,其酿造工艺、品种分类及品鉴技巧也一直是研究的热点。随着现代科技的进步,尤其是人工智能和机器学习技术的发展,为葡萄酒行业带来了新的研究视角和应用可能。其中,利用前馈神经网络(Feedforward Neural Network, FNN)对葡萄酒类型进行分类,便是一个富有创新性和探索性的研究课题。
葡萄酒数据集/三元分类
10-07
葡萄酒数据集,原始数据,三类别,分别含59、71、48个样本。zip内含描述文件。
基于BP网络的数据分类预测——意大利葡萄酒种类识别
人工智能算法学习matlab
01-25 589
BP神经网络数据分类是一种基于神经网络的数据分类方法,它通过构建一个BP神经网络模型,将输入数据映射到输出结果,从而实现数据的分类
SVM神经网络的数据分类预测-葡萄酒种类识别(matlab实现).zip
08-24
首先,我们需要对葡萄酒数据集进行预处理,包括数据清洗、归一化或标准化。然后,将数据分为训练集和测试集。接着,使用`svmtrain`函数拟合模型,并用`svmclassify`进行预测。最后,通过比较预测结果和真实类别,...
SVM神经网络的数据分类预测-葡萄酒种类识别
03-25
本文将深入探讨这两种模型,并结合一个具体的案例——利用Matlab进行葡萄酒种类识别,来阐述如何运用SVM和神经网络进行数据分类。 首先,支持向量机(SVM)是一种监督学习算法,其核心思想是找到一个超平面,使得...
基于Matlab的SVM神经网络的数据分类预测-葡萄酒种类识别
06-04
【作品名称】:基于Matlab的SVM神经网络的数据分类预测-葡萄酒种类识别 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】...
红酒白酒数据集
05-29
机器学习常用数据集,主要是红酒、白酒分类别的成分数据,可以用于机器学习的分类测试练习。
【机器学习实战】使用sklearn中的决策树对红酒数据集进行分类(Jupyter)
在热爱技术的路上一直前行。
05-29 6494
1. sklearn中的决策树 2. sklearn基本建模流程 3.决策树的基本流程 4.代码实现 4.1 数据集 —— 红酒 特征值(前13列) 目标值(3类) 4.2 代码及结果 4.2.1 预测部分 # 获取数据集 wine = load_wine() # 划分数据集 x_train, x_test, y_train, y_test = train_test_split(wine.data, wine.target, test_size=0.3) # 建模 clf = tree.Dec
数据分析大作业-红酒数据集分析
06-14
数据分析大作业-红酒数据集分析
Wine-Quality-Data-Set:使用python和不同ML方法进行葡萄酒质量数据集的实验
03-05
葡萄酒质量数据集 使用python和不同ML方法进行葡萄酒质量数据集的实验
Red-Wine-Quality-Accuracy-0.9175-:来自kaggle的“红酒质量”数据集。 提供了具有不同化学物质的葡萄酒成分的数据。 我曾经用熊猫来操纵数据,然后用Seaborn来可视化数据。 最后,我使用scikit-learn的各种模型对葡萄酒的质量做出了预测
05-08
/ *日期:2018年5月7日作者:Raj Mehrotra * / 来自kaggle的“红酒质量”数据集数据集包含有关葡萄酒样品的详细信息,以及说明葡萄酒中不同化学物质浓度的不同特征。 目标变量是0-10的葡萄酒质量。 我首先探索并分析了数据,并使用了熊猫,matplotlib,seaborn库进行了可视化,并研究了不同类别和数字特征的分布。 然后,我清理了数据并准备好进行建模。然后,我还使用sklearn提供的StandardScaler缩放了所有数字功能以实现更好的性能。 最后,我从scikit学习中使用了不同的ML算法,包括SVM,RandomForest等。 我还使用GridSearchCV函数调整了所有算法的参数。 最后,通过使用带有“ rbf”内核和参数“ C”和“ gamma”的调整值的支持向量机,我在数据集上的精度为0.9175。
葡萄酒/红葡萄酒质量分析与预测(PCA+MLPClassifier)100%
qq_52201194的博客
06-28 6292
机器学习的期末课程设计,对白葡萄酒中品质进行预测,要求不能改变分类情况,笔者采用PCA对数据进行预处理,MLP进行预测,精确率达100%
UCI数据集数据的分析 ——葡萄酒数据
热门推荐
X_dmword的博客
05-21 4万+
1、前言 葡萄酒是一种成分复杂的酒精饮料,不同产地、年份和品种的葡萄酒成分不同,这也是导致质量差异过大的重要因素。至今,质量评价主要还是依靠专家的感官。味道是最难理解的一种感官,因此用味蕾评价葡萄酒也就成为一件艰巨的任务。为了评估葡萄酒的质量,我们提出的方法就是根据酒的物理化学性质与质量的关系,找出高品质的葡萄酒具体与什么性质密切相关,这些性质又是如何影响葡萄酒的质量。 2、数据准备...
svm神经网络葡萄酒matlab,SVM神经网络的数据分类预测-葡萄酒种类识别
weixin_30007303的博客
03-18 476
%% 清空环境变量close all;clear;clc;format compact;%% 数据提取% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量load chapter12_wine.mat;% 画出测试数据的box可视化图figure;boxplot(wine,'orientation','ho...
数据分析案例--红酒数据集分析
Michaelyu的博客
03-13 2万+
介绍: 这篇文章主分析了红酒的通用数据集,这个数据集一共有1600个样本,11个红酒的理化性质,以及红酒的品质(评分从0到10)。这里主要用python进行分析,主要内容分为:单变量,双变量,和多变量分析。 注意:我们在分析数据之前,一定要先了解数据。 1.导入python中相关的库 import numpy as np import pandas as pd import matplotlib....
项目分享:大数据分析葡萄酒品质鉴别系统设计与实现
switch_mooood的博客
07-05 501
葡萄酒品鉴既是一门科学,也是一门艺术。品鉴葡萄酒,首先当然要能鉴别酸、甜、苦、咸、鲜五种基本味道,它们和酒精等是否均衡协调。决定葡萄酒品质的这些特性最终决定与其内部的化学成份,由于传统的通过品酒师鉴别酒的品质复杂,且人为干扰因素很大,我们尝试通过大数据分析方式鉴别葡萄酒的好坏而开发此系统。数据集是采集于葡萄牙北部“VinhoVerde”葡萄酒的数据。由于隐私和物流问题,只有理化变量特征是可以进行使用的(例如,数据集中没有关于葡萄品种、葡萄酒品牌、葡萄酒销售价格等的数据)。
使用神经网络算法对葡萄酒数据集进行分类代码
05-25
以下是使用Python和Scikit-learn库实现葡萄酒数据集分类代码: ```python # 导入库和数据集 from sklearn.datasets import load_wine from sklearn.model_selection import train_test_split from sklearn.neural...
写文章

热门文章

  • 【离散数学】置换群的轮换表示 15653
  • 为葡萄酒数据集构造SVM分类器和使用随机森林回归模型预测葡萄酒质量 7503
  • 使用神经网络实现葡萄酒数据集的分类分析 5049
  • 【人工智能】保姆级波士顿房价预测 3490
  • 【人工智能】使用yolov7和youlov8以及re-detr模型实现安全帽检测 1829

分类专栏

  • 人工智能 6篇
  • 离散数学 3篇
  • 数据科学导论 3篇

最新评论

  • 【人工智能】保姆级波士顿房价预测

    蓝桉497: 求数据集文件

  • 【人工智能】保姆级波士顿房价预测

    霖霖714: 能发一下数据集文件吗

  • 【人工智能】新手版手写数字识别

    CSDN-Ada助手: 恭喜您发布了第11篇博客,标题为“【人工智能】新手版手写数字识别”。您的文章内容丰富、深入浅出,对新手来说非常友好。希望您能继续坚持创作,分享更多有趣的内容给读者。下一步建议可以尝试探讨一些进阶的人工智能技术,或者分享一些实践经验,让读者更深入地了解这个领域。期待您的精彩文章!

  • 【人工智能】保姆级波士顿房价预测

    CSDN-Ada助手: 恭喜您发布了第12篇博客!标题中的“保姆级波士顿房价预测”听起来非常有趣和实用。希望您能继续分享更多关于人工智能在房价预测方面的知识和经验。或许下一步可以探讨不同城市的房价预测模型比较,或者介绍一些实用的人工智能工具来辅助房价预测。期待您的下一篇作品!愿您在创作中不断进步,感谢您的分享!

  • 【人工智能】Paddle框架实现海洋生物识别

    CSDN-Ada助手: 恭喜作者在人工智能领域又一次取得了新的进展,实现了海洋生物识别这一有趣而又实用的应用!希望作者能够继续保持创作的热情,不断探索更多有意义的课题。或许下一步可以考虑深入研究一些相关领域,比如海洋生物数量统计、行为分析等,为我们更好地了解海洋生物世界做出更多贡献。期待作者的更多精彩作品!

大家在看

  • 电赛毕设:基于stm32的非接触式交流电流检测装置
  • mysql数据库操作(详细教学)
  • 【9月持续更新】国内ChatGPT-4中文镜像网站整理 722
  • 浅谈金融科技十大发展趋势
  • 关于 NLP 学习的应用方向与核心流程 1132

最新文章

  • 【人工智能】ResNet与MobileNet实现猫狗识别
  • 【人工智能】Paddle框架实现海洋生物识别
  • 【人工智能】保姆级波士顿房价预测
2024年6篇
2023年5篇
2022年3篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家深圳公园摆件玻璃钢雕塑小熊猫玻璃钢雕塑现货纯白梅花鹿玻璃钢雕塑永州玻璃钢雕塑厂家信阳知名玻璃钢卡通雕塑济南大型玻璃钢雕塑定做价格嘉兴佛像玻璃钢雕塑生产厂家广州商场美陈策玻璃钢雕塑断裂怎么修复商场美陈行业分析兰州玻璃钢植物雕塑安装四会玻璃钢抽象雕塑公司清远玻璃钢雕塑代理价格河北常见商场美陈厂家直销荥阳玻璃钢卡通雕塑四川玻璃钢雕塑怎么样德庆玻璃钢人物雕塑批发商丘公园水景玻璃钢景观雕塑常见玻璃钢花盆供应鹰潭步行街玻璃钢雕塑大型玻璃钢雕塑销售价格常州销售玻璃钢面包雕塑江苏室内商场美陈报价玻璃钢主题人物雕塑丹东玻璃钢雕塑报价免费咨询四川常用商场美陈市场价淮北定做玻璃钢雕塑厂选哪家阜阳园林玻璃钢雕塑内蒙古玻璃钢雕塑联系方式玻璃钢花盆模具香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化