葡萄酒品质预测:机器学习应用

“葡萄酒是最健康、最卫生的饮品”——路易·巴斯德。确实,如果深入思考,会发现正在讨论的葡萄酒在全球范围内非常受欢迎,几乎无人不晓。一定都见过水果,它们尝起来非常甜美,但水果不仅仅是用来吃的,它们还可以用来制作各种东西,葡萄酒就是其中之一。

葡萄酒简介

葡萄酒是一种由发酵葡萄制成的酒精饮料。如果接触过葡萄酒,会发现葡萄酒也有不同的类型,如红葡萄酒和白葡萄酒,这是因为不同品种的葡萄。可能会惊讶地听到,全球葡萄酒的分布量高达3100万吨,这是一个巨大的数字。

当想到葡萄酒的品质时,如何根据品质来区分葡萄酒呢?专家根据葡萄酒的气味、风味和颜色来区分,但不是葡萄酒专家,无法判断葡萄酒的好坏。那么,该怎么办呢?这里就是机器学习的用武之地,是的,可能会想到正在使用机器学习来检查葡萄酒的品质。机器学习有一些技术,将在下面讨论:

数据集描述

如果下载了数据集,会发现有多个特征将被用来分类葡萄酒的品质,其中许多是化学的,所以需要对这些化学物质有一个基本的了解。

挥发性酸度:葡萄酒中存在的挥发性酸

固定酸度:葡萄酒中发现的主要固定酸酒石酸琥珀酸柠檬酸苹果酸

残糖:发酵后剩余的糖量。

柠檬酸:它是一种弱有机酸,自然存在于柑橘类水果中。

氯化物:葡萄酒中存在的量。

游离二氧化硫:用于防止葡萄酒氧化和微生物腐败的SO2

总二氧化硫

pH:在葡萄酒中用于检查酸度。

密度

硫酸盐:添加的亚硫酸盐用于保持葡萄酒的新鲜度,防止氧化和细菌。

酒精:葡萄酒中存在的酒精百分比。

除了化学特征外,还会看到一个名为类型的特征,它包含了之前讨论的红葡萄酒和白葡萄酒,其中红葡萄酒的百分比大于白葡萄酒。

导入模块

让导入一些重要的库:

import pandas as pd import numpy as np import seaborn as sb import matplotlib.pyplot as plt

简要介绍一下这些库,pandas用于数据分析NumPy用于n维数组,seabornmatplotlib功能相似,都用于可视化。

研究数据集

下一步,需要检查数据中包含的技术信息。

df = pd.read_csv('winequalityN.csv') print(df.head()) print(df.info()) print(df.describe())

如上所示,上述图像提供了关于特征的重要信息,将利用这些信息进行下一步工作。

可视化

知道“图像说明一切”,这里可视化就发挥作用了,使用可视化来解释数据。换句话说,它是一种用于发现有用信息的数据的图形表示。

df.hist(bins=25,figsize=(10,10)) plt.show()

上述图像显示了数据在特征上的分布情况。

处理空值

在数据集中,存在许多缺失数据,这将影响机器学习模型的准确性。在机器学习中,有许多方法可以处理空值或缺失值。现在,将使用它们来处理无组织的数据。

new_df.isnull().sum() new_df.update(new_df.fillna(new_df.mean()))

这样,只处理了数值变量的值,因为用mean()填充,而均值不适用于分类变量,所以对于分类变量:

分割数据集

现在对数据集进行分割操作:

from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=40)

归一化

from sklearn.preprocessing import MinMaxScaler norm = MinMaxScaler() norm_fit = norm.fit(x_train) new_xtrain = norm_fit.transform(x_train) new_xtest = norm_fit.transform(x_test)

应用模型

from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import classification_report rnd = RandomForestClassifier() fit_rnd = rnd.fit(new_xtrain,y_train) rnd_score = rnd.score(new_xtest,y_test) print('score of model is : ',rnd_score) import pickle file = 'wine_quality' save = pickle.dump(rnd,open(file,'wb'))
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485