“葡萄酒是最健康、最卫生的饮品”——路易·巴斯德。确实,如果深入思考,会发现正在讨论的葡萄酒在全球范围内非常受欢迎,几乎无人不晓。一定都见过水果,它们尝起来非常甜美,但水果不仅仅是用来吃的,它们还可以用来制作各种东西,葡萄酒就是其中之一。
葡萄酒是一种由发酵葡萄制成的酒精饮料。如果接触过葡萄酒,会发现葡萄酒也有不同的类型,如红葡萄酒和白葡萄酒,这是因为不同品种的葡萄。可能会惊讶地听到,全球葡萄酒的分布量高达3100万吨,这是一个巨大的数字。
当想到葡萄酒的品质时,如何根据品质来区分葡萄酒呢?专家根据葡萄酒的气味、风味和颜色来区分,但不是葡萄酒专家,无法判断葡萄酒的好坏。那么,该怎么办呢?这里就是机器学习的用武之地,是的,可能会想到正在使用机器学习来检查葡萄酒的品质。机器学习有一些技术,将在下面讨论:
如果下载了数据集,会发现有多个特征将被用来分类葡萄酒的品质,其中许多是化学的,所以需要对这些化学物质有一个基本的了解。
挥发性酸度:葡萄酒中存在的挥发性酸
。
固定酸度:葡萄酒中发现的主要固定酸
是酒石酸
、琥珀酸
、柠檬酸
和苹果酸
。
残糖:发酵后剩余的糖量。
柠檬酸:它是一种弱有机酸,自然存在于柑橘类水果中。
氯化物:葡萄酒中存在的盐
量。
游离二氧化硫:用于防止葡萄酒氧化和微生物腐败的SO2
。
总二氧化硫
pH
:在葡萄酒中用于检查酸度。
密度
硫酸盐:添加的亚硫酸盐用于保持葡萄酒的新鲜度,防止氧化和细菌。
酒精:葡萄酒中存在的酒精百分比。
除了化学特征外,还会看到一个名为类型
的特征,它包含了之前讨论的红葡萄酒和白葡萄酒,其中红葡萄酒的百分比大于白葡萄酒。
让导入一些重要的库:
import pandas as pd
import numpy as np
import seaborn as sb
import matplotlib.pyplot as plt
简要介绍一下这些库,pandas
用于数据分析,NumPy
用于n维数组,seaborn
和matplotlib
功能相似,都用于可视化。
下一步,需要检查数据中包含的技术信息。
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'))