【Python】机器学习模型在红酒质量等级评价中的案例应用
【Python】机器学习模型在红酒质量等级评价中的案例应用
文章目录
- 【Python】机器学习模型在红酒质量等级评价中的案例应用
- 1.红酒质量数据
- 2. 划分数据并训练机器学习模型
1.红酒质量数据
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv('white wine data.csv')
df
fixed acidity | volatile acidity | citric acid | residual sugar | chlorides | free sulfur dioxide | total sulfur dioxide | density | pH | sulphates | alcohol | quality | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 7.4 | 0.700 | 0.00 | 1.9 | 0.076 | 11.0 | 34.0 | 0.9978 | 3.51 | 0.56 | 9.4 | 5 |
1 | 7.8 | 0.880 | 0.00 | 2.6 | 0.098 | 25.0 | 67.0 | 0.9968 | 3.20 | 0.68 | 9.8 | 5 |
2 | 7.8 | 0.760 | 0.04 | 2.3 | 0.092 | 15.0 | 54.0 | 0.9970 | 3.26 | 0.65 | 9.8 | 5 |
3 | 11.2 | 0.280 | 0.56 | 1.9 | 0.075 | 17.0 | 60.0 | 0.9980 | 3.16 | 0.58 | 9.8 | 6 |
4 | 7.4 | 0.700 | 0.00 | 1.9 | 0.076 | 11.0 | 34.0 | 0.9978 | 3.51 | 0.56 | 9.4 | 5 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2192 | 6.4 | 0.450 | 0.07 | 1.1 | 0.030 | 10.0 | 131.0 | 0.9905 | 2.97 | 0.28 | 10.8 | 5 |
2193 | 6.4 | 0.475 | 0.06 | 1.0 | 0.030 | 9.0 | 131.0 | 0.9904 | 2.97 | 0.29 | 10.8 | 5 |
2194 | 6.3 | 0.270 | 0.38 | 0.9 | 0.051 | 7.0 | 140.0 | 0.9926 | 3.45 | 0.50 | 10.5 | 7 |
2195 | 6.9 | 0.410 | 0.33 | 10.1 | 0.043 | 28.0 | 152.0 | 0.9968 | 3.20 | 0.52 | 9.4 | 5 |
2196 | 7.0 | 0.290 | 0.37 | 4.9 | 0.034 | 26.0 | 127.0 | 0.9928 | 3.17 | 0.44 | 10.8 | 6 |
2197 rows × 12 columns
2. 划分数据并训练机器学习模型
X,y = df.iloc[:,0:-1].values,df.iloc[:,-1].values.reshape([-1,1])from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 对数据进行标准化处理, 主要是X_train
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
ss = ss.fit(X_train)
X_train_std = ss.fit_transform(X_train)
X_test_std = ss.fit_transform(X_test)
# ss1 = StandardScaler()
# ss1 = ss1.fit(y_train)
# y_train_std = ss1.fit_transform(y_train)
# y_test_std = ss1.fit_transform(y_test)
#--------------- Modllong# SVM Classifier
def svm_classifier(train_x, train_y): from sklearn.svm import SVC model = SVC(kernel='rbf', probability=True) model.fit(train_x, train_y) return model # KNN Classifier
def knn_classifier(train_x, train_y): from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier() model.fit(train_x, train_y) return model # Logistic Regression Classifier
def logistic_regression_classifier(train_x, train_y): from sklearn.linear_model import LogisticRegression model = LogisticRegression(penalty='l2') model.fit(train_x, train_y) return model # Random Forest Classifier
def random_forest_classifier(train_x, train_y): from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(n_estimators=8) model.fit(train_x, train_y) return modeltrain_x = X_train_std
train_y = y_trainmodel_svc = svm_classifier(train_x, train_y)
model_knn = knn_classifier(train_x, train_y)
model_logistic = logistic_regression_classifier(train_x, train_y)
model_rf = random_forest_classifier(train_x, train_y)
# ----------y_svc = model_svc.predict(X_test_std)
y_knn = model_knn.predict(X_test_std)
y_logistic = model_logistic.predict(X_test_std)
y_rf = model_rf.predict(X_test_std)# 结果分析from sklearn.metrics import f1_score
from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_score
from sklearn.metrics import recall_scoreprint('分类准确率为:',accuracy_score(y_test,y_svc),accuracy_score(y_test,y_knn),accuracy_score(y_test,y_logistic),accuracy_score(y_test,y_rf))
print('宏平均准确率:',precision_score(y_test,y_svc,average='macro'),precision_score(y_test,y_knn,average='macro'),precision_score(y_test,y_logistic,average='macro'),precision_score(y_test,y_rf,average='macro'))
print('微平均准确率:',precision_score(y_test,y_svc,average='micro'),precision_score(y_test,y_knn,average='micro'),precision_score(y_test,y_logistic,average='micro'),precision_score(y_test,y_rf,average='micro'))
print('宏平均召回率为:',recall_score(y_test,y_svc,average='macro'),recall_score(y_test,y_knn,average='macro'),recall_score(y_test,y_logistic,average='macro'),recall_score(y_test,y_rf,average='macro'))
print('微平均召回率为:',recall_score(y_test,y_svc,average='micro'),recall_score(y_test,y_knn,average='micro'),recall_score(y_test,y_logistic,average='micro'),recall_score(y_test,y_rf,average='micro'))
print('宏平均f1值为:',f1_score(y_test,y_svc,average='macro'),f1_score(y_test,y_knn,average='macro'),f1_score(y_test,y_logistic,average='macro'),f1_score(y_test,y_rf,average='macro'))
print('微平均f1值为:',f1_score(y_test,y_svc,average='micro'),f1_score(y_test,y_knn,average='micro'),f1_score(y_test,y_logistic,average='micro'),f1_score(y_test,y_rf,average='micro'))
# 误差评估
分类准确率为: 0.5818181818181818 0.5515151515151515 0.5575757575757576 0.6075757575757575
宏平均准确率: 0.280583340709923 0.2986745934975547 0.3499023740988492 0.3984623113419726
微平均准确率: 0.5818181818181818 0.5515151515151515 0.5575757575757576 0.6075757575757575
宏平均召回率为: 0.27642774299410267 0.27744523345842165 0.2858453966079045 0.3401924573344921
微平均召回率为: 0.5818181818181818 0.5515151515151515 0.5575757575757576 0.6075757575757575
宏平均f1值为: 0.27488434754737406 0.27950149117164064 0.29807537284434943 0.3552209623496858
微平均f1值为: 0.5818181818181818 0.5515151515151515 0.5575757575757576 0.6075757575757575
【Python】机器学习模型在红酒质量等级评价中的案例应用相关推荐
- ML:机器学习模型提效之监督学习中概率校准的简介、案例应用之详细攻略
ML:机器学习模型提效之监督学习中概率校准的简介.案例应用之详细攻略 目录 监督学习中概率校准的简介 监督学习中概率校准的概述 监督
- GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化
地质灾害是指全球地壳自然地质演化过程中,由于地球内动力.外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件.由于降水.地震等自然作用下,地质灾害在世界范围内频繁发生.我国除滑坡灾害外, ...
- Python机器学习笔记:深入理解Keras中序贯模型和函数模型
先从sklearn说起吧,如果学习了sklearn的话,那么学习Keras相对来说比较容易.为什么这样说呢? 我们首先比较一下sklearn的机器学习大致使用流程和Keras的大致使用流程: skl ...
- 前几行 python_调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python开源机器学习建模库PyCaret,刚刚发布了2.0版本. 这款堪称「调包侠神器」的模型训练工具包,几行代码就能搞定模型编写.改进 ...
- (附源码)基于sklearn的多种机器学习模型在降水降尺度中的应用(KNN\LR\RF\Ada\Xg\GBDT)
最近学习了机器学习, 有一些感触,但是没有时间详细写.这里简单给一下我写的源码(并且我是在jupyter notebook上面做的报告,所以代码格式也是jupyter notebook的,如果你需要移 ...
- Python机器学习:梯度下降法003线性回归中的梯度下降法
接下来使用下列公式编程
- python 计时器_谁能取代Python?我使用Go来部署机器学习模型的原因
全文共1881字,预计学习时长7分钟 图源:unsplash 毋庸置疑,Python是如今最受欢迎的机器学习语言.虽然机器学习框架使用CUDA C / C ++之类的语言进行实际运算,但它们都提供了P ...
- go调用python脚本_谁能取代Python?我使用Go来部署机器学习模型的原因
全文共1881字,预计学习时长7分钟 图源:unsplash 毋庸置疑,Python是如今最受欢迎的机器学习语言.虽然机器学习框架使用CUDA C / C ++之类的语言进行实际运算,但它们都提供了P ...
- python如何保存训练好的模型_Python机器学习7:如何保存、加载训练好的机器学习模型...
本文将介绍如何使用scikit-learn机器学习库保存Python机器学习模型.加载已经训练好的模型.学会了这个,你才能够用已有的模型做预测,而不需要每次都重新训练模型. 本文将使用两种方法来实现模 ...
最新文章
- CSS3实践之路(一):CSS3之我观
- php空间限制磁盘限额,ORA-01536:超出表空间XXXX的空间限额
- 网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar
- 深入理解C# 静态类与非静态类、静态成员的区别 [转载]
- 「2019纪中集训Day7」解题报告
- SQLAlchemy Connection
- java 内部类序列化_Gson如何序列化内部类
- [十]JavaIO之FilterInputStream FilterOutputStream
- Java的多线程机制系列:(四)不得不提的volatile及指令重排序(happen-before)
- 教你如何做到显示 Dialog Box(对话框)
- 问题查询-批文页面显示别人操作的结果
- 动态列之函数实现动态列
- mysql数据库中的分组查询语句_详解MySQL中的分组查询与连接查询语句
- access数据库密码破解
- 用优盘装系统看不到计算机本身的硬盘,如果U盘安装系统找不到硬盘怎么办
- Jenkins 与 GitLab 的自动化构建之旅
- idea 撤销本地commit 但是未push的代码
- oracle中rollback命令,9.2.4 执行ROLLBACK命令
- python对目录下的文件排序问题
- 6.18当前,品牌商一定要监测好这些价格
热门文章
- 常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
- 7-2 例4-3游泳池改造预算
- 有什么网站是python做的_自学python有什么网站
- ubuntu 16.04, conda不能安装、更新包的解决办法
- 基于python的步态分析_基于python实现RFM分析
- STM32使用printf重定向到USART(串口)并打印数据到串口助手
- 产品分析数据来源渠道
- 解决ubuntu安装完搜狗输入法只能使用英文,无法输入中文
- 《C和指针》—— 第13章 函数指针的作用1:回调函数2(与模板结合,简化代码)
- eclipse查看项目所在文件夹