目录

程序简述

数据集截图

程序/数据集下载

核心代码解析

Module/BuildModel.py(接口,可以直接运行)

接口调用、运行效果

Main.py

程序简述

对红酒质量指标数据进行灰色关联分析,首先进行数据标准化,然后计算关联系数矩阵和平均综合关联度

程序输入:第一列为母序列的指标矩阵

程序输出:关联度矩阵

灰色关联分析方法(GRA),是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。

数据集截图

图1,红酒质量指标

程序/数据集下载

点击进入下载地址

核心代码解析

Module/BuildModel.py(接口,可以直接运行)

建立灰色关联度模型,输入数据可选择是否需要标准化,结果保存在对象的result里,该代码可直接运行

# -*- coding: utf-8 -*-

from sklearn.preprocessing import StandardScaler

import pandas as pd

import numpy as np

import os

class GraModel():

'''灰色关联度分析模型'''

def __init__(self,inputData,p=0.5,standard=True):

'''

初始化参数

inputData:输入矩阵,纵轴为属性名,第一列为母序列

p:分辨系数,范围0~1,一般取0.5,越小,关联系数间差异越大,区分能力越强

standard:是否需要标准化

'''

self.inputData = np.array(inputData)

self.p = p

self.standard = standard

#标准化

self.standarOpt()

#建模

self.buildModel()

def standarOpt(self):

'''标准化输入数据'''

if not self.standard:

return None

self.scaler = StandardScaler().fit(self.inputData)

self.inputData = self.scaler.transform(self.inputData)

def buildModel(self):

#第一列为母列,与其他列求绝对差

momCol = self.inputData[:,0]

sonCol = self.inputData[:,0:]

for col in range(sonCol.shape[1]):

sonCol[:,col] = abs(sonCol[:,col]-momCol)

#求两级最小差和最大差

minMin = sonCol.min()

maxMax = sonCol.max()

#计算关联系数矩阵

cors = (minMin + self.p*maxMax)/(sonCol+self.p*maxMax)

#求平均综合关联度

meanCors = cors.mean(axis=0)

self.result = {'cors':{'value':cors,'desc':'关联系数矩阵'},'meanCors':{'value':meanCors,'desc':'平均综合关联系数'}}

if __name__ == "__main__":

#路径目录

curDir = os.path.dirname(os.path.abspath(__file__))#当前目录

baseDir = os.path.dirname(curDir)#根目录

staticDir = os.path.join(baseDir,'Static')#静态文件目录

resultDir = os.path.join(baseDir,'Result')#结果文件目录

#读数

data = [

[1,1.1,2,2.25,3,4],

[1,1.166,1.834,2,2.314,3],

[1,1.125,1.075,1.375,1.625,1.75],

[1,1,0.7,0.8,0.9,1.2]

]

data = np.array(data).T

#建模

model = GraModel(data,standard=True)

print(model.result)

接口调用、运行效果

Main.py

调用BuildModel.py的接口,实例分析,得到红酒质量与红酒PH等指标之间的关联度。

# -*- coding: utf-8 -*-

from Module.BuildModel import GraModel

import pandas as pd

import numpy as np

import os

import matplotlib.pyplot as plt

import seaborn as sns

#路径目录

baseDir = os.path.dirname(os.path.abspath(__file__))#当前目录

staticDir = os.path.join(baseDir,'Static')#静态文件目录

resultDir = os.path.join(baseDir,'Result')#结果文件目录

#接口要求第一列为母序列,即红酒质量

data = pd.read_csv(staticDir+'/winequality-red.csv',sep=';')

columns = ['quality','fixed acidity', 'volatile acidity',

'citric acid', 'residual sugar','chlorides',

'free sulfur dioxide', 'total sulfur dioxide',

'density','pH', 'sulphates', 'alcohol']

data = data[columns]

#建立灰色关联模型,标准化数据

model = GraModel(data,standard=True)

#模型计算结果

result = model.result

#平均关联程度

meanCors = result['meanCors']['value']

#可视化图表

#用来正常显示中文标签

plt.rcParams['font.sans-serif']=['SimHei']

#用来正常显示负号

plt.rcParams['axes.unicode_minus']=False

#可视化矩阵

plt.clf()

plt.figure(figsize=(8,12))

sns.heatmap(meanCors.reshape(1,-1), square=True, annot=True,  cbar=False,

vmax=1.0,

linewidths=0.1,cmap='viridis')

plt.yticks([0,],['quality'])

plt.xticks(np.arange(0.5,12.5,1),columns,rotation=90)

plt.title('指标关联度矩阵')

plt.savefig(resultDir+'/指标关联度可视化矩阵.png',dpi=100,bbox_inches='tight')

图2,关联度矩阵热力图

python做灰色关联度分析_python实现灰色关联分析(GRA)——以红酒质量指标为例相关推荐

  1. python做一个考试系统_python考试系统 相关实例(示例源码)下载 - 好例子网

    开发语言:Python | 大小:0.02M | 发布时间:2016-07-07 | 发布人:linq 相关标签: 立即下载 开发语言:Python | 大小:0.21M | 发布时间:2020-08 ...

  2. 基于灰色关联度的人均GDP影响因数分析

    声明:本人是一名大二学生,这篇文章是我第一篇文章,这篇文章只是老师布置的小作业所以没有严格按照文章格式来写.可能描述有误,欢迎大家评论区指正. 基于灰色关联度的人均GDP影响因数分析 摘要 本文目的是 ...

  3. python做灰色关联度分析_python实现灰色关联

    灰色关联分析(Grey Relational Analysis, GRA) 通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立 ...

  4. 灰色关联度分析_数学建模|关联分析之术|灰度预测模型预备知识

    关联分析 作者:PureFFFmennory 联系方式:ProdigyYanng@gmail.com 1. 目的 现实客观事物的每个现象非常复杂,影响因素繁多.对某一个系统而言,需要对该系统进行因素分 ...

  5. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析

    引言 随着时代的发展,我国在各行各业都需要大量的人才引进,处于近几年最热门的行业也称"最火行业":大数据.数据分析.数据挖掘.机器学习.人工智能,这五门行业各有不同又互有穿插.近几 ...

  6. python做什么生意好找_Python 的练手项目有哪些值得推荐?

    注:下面分享的练习项目面向刚入门的Python学习者,项目的代码地址见结尾. Python 是一门虽然简单却很强大的编程语言.可能有些刚入门 Python 的朋友,虽然已经掌握了 Python 的基础 ...

  7. python做exe开发教程_python做exe开发教程

    python做exe开发教程内容摘要 python做exe开发教程其他方法无效时可用免疫抑制剂,交通部监理员教程证,6.客户端的异常测试.6.机费用械性能(1)抗拉试验:酒店入职教程内容,6.9l-8 ...

  8. python 文本相似度现状_python文本相似度分析

    如何用python计算文本的相似度 同学欢迎来到CSS布局HTML~文本的相似度计算是NLP(自然语言处理)方向的范畴,感兴趣可以找相关的书籍详细学习研究.同学问的这个问题,可以搜索:python文本 ...

  9. python 关联分析算法的包_Python 极简关联分析(购物篮分析)

    关联分析,也称购物篮分析,本文目的: 基于订单表,用最少的python代码完成数据整合及关联分析 文中所用数据下载地址: 使用Python Anaconda集成数据分析环境,下载mlxtend机器学习 ...

最新文章

  1. 那些好用的小工具——Total Commander
  2. 拒收苹果超10万元赏金!程序员小哥找出iCloud账户漏洞后,发文直指苹果不够公开透明...
  3. 量子计算机模拟其他系统,一种量子计算机的模拟控制方法、系统及相关组件技术方案...
  4. Use Standard Controllers
  5. android phone驱动_一文带你掌握 Android 系统架构
  6. VTK:PolyData之Casting
  7. 将递归文件系统遍历转换为流
  8. mysql_result 对应mysqli哪个_php – 如何在mysqli中转换mysql_result?
  9. Atitit。监听键盘上下左右方向键事件java js jquery c#.net
  10. 惠普136nw打印机清零_HP打印机清零方法(冷复位恢复出厂设置)
  11. IDEA代码格式化会快捷键Ctrl+Alt+L失效
  12. 使用toUpperCase toLowerCase getBytes方法实现一串字母字符的大小写转换
  13. 无法连接数据库2003-cant connect to Mysql server on ‘localhost’(10038)
  14. win7锁定计算机自动关机,win7电脑怎么定时关机_win7系统设置自动关机的方法
  15. 【整理】TAC码是什么?TAC码和IMEI有什么关系?
  16. js Array 标准方法
  17. 主成分分析(R语言)
  18. 微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}
  19. 2020年Web前端面试题及答案----ES6篇
  20. heritrix java_基于Java的Heritrix爬取网页

热门文章

  1. 深度学习_GAN_mode collapsing
  2. 阅人无数,不如一本好书
  3. TypeError: object.__new__() takes exactly one argument (the type to instantiate)
  4. 考ACP敏捷认证多少分算通过?
  5. 最新web前端面试题
  6. JVM内存模型和性能调优:JVM内存分配与回收:Minor GC后存活的对象Survivor区放不下- 第26篇
  7. 考试可以用计算机吗小学,小学考试即将进入电脑阅卷时代,认真阅读,至少多拿20分!...
  8. 会员系统怎么做到线上线下融合?
  9. TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享
  10. 哪些产品需要做FCC认证,带电无线产品是否都需要做FCC