日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python实现 灰色关联分析 与结果可视化

發布時間:2025/3/21 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python实现 灰色关联分析 与结果可视化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前在比賽的時候需要用Python實現灰色關聯分析,從網上搜了下只有實現兩個列之間的,于是我把它改寫成了直接像Pandas中的計算工具直接計算person系數那樣的形式,可以對整個矩陣進行運算,并給出了可視化效果,效果請見實現

作者提醒:部分讀者反應在某些情況下與MATLAB自帶灰色關聯分析結果有較大差距,目前作者尚未對此問題進行檢驗,請謹慎使用

灰色關聯分析法

對于兩個系統之間的因素,其隨時間或不同對象而變化的關聯性大小的量度,稱為關聯度。在系統發展過程中,若兩個因素變化的趨勢具有一致性,即同步變化程度較高,即可謂二者關聯程度較高;反之,則較低。因此,灰色關聯分析方法,是根據因素之間發展趨勢的相似或相異程度,亦即“灰色關聯度”,作為衡量因素間關聯程度的一種方法。

簡介

灰色系統理論提出了對各子系統進行灰色關聯度分析的概念,意圖透過一定的方法,去尋求系統中各子系統(或因素)之間的數值關系。因此,灰色關聯度分析對于一個系統發展變化態勢提供了量化的度量,非常適合動態歷程分析。

計算步驟

  • 確實參考數列與比較數列
  • 對參考數列與比較數列進行無量綱化處理
  • 計算關聯系數,求關聯度
  • 此處我給出的是第三步的實現方式,無量綱化請自己處理.數據使用UCI的紅酒質量數據集.

    代碼實現

    源代碼可以前往 github下載

    下載數據

    import pandas as p import numpy as np from numpy import * import matplotlib.pyplot as plt %matplotlib inline# 從硬盤讀取數據進入內存 wine = pd.read_csv("/home/fonttian/Data/dataset/wine/wine.csv") wine.head()

    實現灰色關聯分析

    灰色關聯分析一共分為了三個部分,這樣比較容易大家隨意摘取部分內容使用,
    第一個方法是無量綱化,我這里選擇的是(x-mean)/(max-min),你也可以替換成其他方法(據我個人了解,一般而言標準化不行)

    第二個部分是計算一個dataframe中單獨某一列灰色關聯分析度的方法,m代表參考列,可以任意選擇。2019-3-26在windows上,個人測試wine數據集上一次運算大概0.3s性能不高不低。不過由于部分代碼是numpy寫的性能確實也比純pandas快很多,我這篇文章下邊長期有一個灰色關聯分析Matlab與python灰色關聯分析,但是其為純pandas寫的,看起來很方便,不過運算時間約為本代碼的一倍,所以假如你想要單獨計算一列,個人還是更推薦我的代碼。但是如果你想要更快的性能,肯定還是自己寫numpy更好

    第三部分,是借助前兩個方法實現的計算矩陣,不過因為計算次數比較多,會比較慢,適合出圖。

    # 無量綱化 def dimensionlessProcessing(df):newDataFrame = pd.DataFrame(index=df.index)columns = df.columns.tolist()for c in columns:d = df[c]MAX = d.max()MIN = d.min()MEAN = d.mean()newDataFrame[c] = ((d - MEAN) / (MAX - MIN)).tolist()return newDataFramedef GRA_ONE(gray, m=0):# 讀取為df格式gray = dimensionlessProcessing(gray)# 標準化std = gray.iloc[:, m] # 為標準要素gray.drop(str(m),axis=1,inplace=True)ce = gray.iloc[:, 0:] # 為比較要素shape_n, shape_m = ce.shape[0], ce.shape[1] # 計算行列# 與標準要素比較,相減a = zeros([shape_m, shape_n])for i in range(shape_m):for j in range(shape_n):a[i, j] = abs(ce.iloc[j, i] - std[j])# 取出矩陣中最大值與最小值c, d = amax(a), amin(a)# 計算值result = zeros([shape_m, shape_n])for i in range(shape_m):for j in range(shape_n):result[i, j] = (d + 0.5 * c) / (a[i, j] + 0.5 * c)# 求均值,得到灰色關聯值,并返回result_list = [mean(result[i, :]) for i in range(shape_m)]result_list.insert(m,1)return pd.DataFrame(result_list)def GRA(DataFrame):df = DataFrame.copy()list_columns = [str(s) for s in range(len(df.columns)) if s not in [None]]df_local = pd.DataFrame(columns=list_columns)df.columns=list_columnsfor i in range(len(df.columns)):df_local.iloc[:, i] = GRA_ONE(df, m=i)[0]return df_local

    結果可視化

    該部分添加了三角形顯示的功能,注意如果你出現了圖形顯示不全(最后一行顯示一半的問題,是Matplotlib 的一個版本的問題,升級一下即可)。如果你想要顯示全部注釋熱圖方法中的mask參數即可,不過由于本矩陣為全float計算,會帶有舍入誤差,數據量大的時候差異可能會比較大。所以兩中方法各有利弊,請自行選擇。

    # 灰色關聯結果矩陣可視化 # 灰色關聯結果矩陣可視化 import seaborn as snsdef ShowGRAHeatMap(DataFrame):colormap = plt.cm.RdBuylabels = DataFrame.columns.values.tolist()f, ax = plt.subplots(figsize=(14, 14))ax.set_title('GRA HeatMap')# 設置展示一半,如果不需要注釋掉mask即可mask = np.zeros_like(DataFrame)mask[np.triu_indices_from(mask)] = Truewith sns.axes_style("white"):sns.heatmap(DataFrame,cmap="YlGnBu",annot=True,mask=mask,)plt.show()data_wine_gra = GRA(wine) ShowGRAHeatMap(data_wine_gra)

    新圖效果


    全圖效果

    一些資料

  • 原文鏈接:Python實現 灰色關聯分析 與結果可視化
  • 參考文章:百度百科 灰色關聯分析法
  • 參考文章:簡書 Python實現灰色關聯
  • 建議學習:Maximal Information Coefficient (MIC)最大互信息系數詳解與實現
  • 額外說明

    本博客一開始也是我緊急寫的,而第二部分是為了出圖,因此整體代碼采用了pandas為主,混了部分numpy,但是由于pandas本身有問題,很多情況下,直接用pandas的dataframe代替numpy矩陣進行矩陣性能會比循環低(測試版本ubuntu16.04,ubuntu18.04,測試數據0.5k-200k),而我當時也沒什么時間寫全numpy矢量運算,所以最后就成為了現在這種代碼情況。而且該代碼已經適合我個人目前的工作(大數據工程師)需要了,更大規模的數據我是用的spark或者pyspark,因此我短時間內沒有更新numpy版本的需要,不過如果我更新了,也會第一時間發出來,并給出鏈接,這點請放心。

    除此之外,感謝博友piaoyang_的指正

    總結

    以上是生活随笔為你收集整理的Python实现 灰色关联分析 与结果可视化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 特级西西444www大精品视频 | 久久精品成人一区二区三区蜜臀 | 青青草成人免费在线视频 | 国产精品香蕉国产 | 国产三级视频在线播放 | 依依成人在线 | 久久精品第一页 | 天天人人综合 | 欧美一区二区三区精品 | 好吊视频一区二区三区四区 | 成人精品视频一区二区三区尤物 | 精品黑人一区二区三区 | 九九在线视频 | 在线观看欧美成人 | 国产小视频免费 | 东京热一区二区三区四区 | 超碰导航| 中文字幕在线精品 | 天天干天天摸天天操 | 欧美bbw视频 | 亚洲人交配视频 | 欧美精品久久久久久久久老牛影院 | 国产视频黄 | 自拍在线视频 | 中文字幕11页中文字幕11页 | 麻豆疯狂做受xxxx高潮视频 | 男女黄色网 | 国产一区亚洲二区 | 好吊色视频在线观看 | 日韩中文字幕高清 | 日韩电影三级 | 久久亚洲综合国产精品99麻豆精品福利 | 成人黄色在线免费观看 | 青青国产视频 | 成人网免费 | 欧美 日韩 综合 | 国模小丫大尺度啪啪人体 | 婷婷综合视频 | 一区二区三区波多野结衣 | 成人区人妻精品一区二区网站 | 国产在线视频网 | 瑟瑟视频网站 | 欧美女优视频 | 婷婷综合五月 | 亚洲精品久久久久久久久久久 | 国产免费无码一区二区视频 | 黑巨茎大战欧美白妞 | 久久久久久久久久久久久久久久久 | aaa黄色片| 日本成人在线不卡 | 在线观看的免费 | 国产亚洲精品美女久久久 | 97av在线播放 | 久久久久久久香蕉 | 欧美黄色大片免费看 | 欧美日韩国产一区二区在线观看 | 可以在线观看的黄色 | 国产精品女主播 | 在线观看国产精品一区 | 一本久道久久综合无码中文 | 成年人视频在线播放 | 国产精品揄拍100视频 | av av片在线看 | 曰批又黄又爽免费视频 | 国产高清精品在线观看 | 夜夜撸网站 | 有码在线| 一区二区三区xxx | 国产无码精品在线播放 | 浪潮av网站| 丰满大肥婆肥奶大屁股 | 欧美日韩高清一区 | 精品91av| 久久久久久久一区二区 | 桃色91 | 欧美hdse| av高清在线免费观看 | 福利片网址 | 日本第一页 | 性按摩玩人妻hd中文字幕 | 寡妇一级片 | 亚洲av电影一区二区 | 女人下面无遮挡 | 日韩欧美一二三四区 | av男人的天堂在线 | 色97| 精品一区二区三区四区五区六区 | 久久精品国产精品亚洲毛片 | 五月婷婷激情综合 | 午夜久 | 亚洲偷自 | av中文字幕在线播放 | 少妇的性事hd | 啪啪免费av | 五月天综合激情 | 另类av小说 | 看黄网站在线观看 | 国产综合精品久久久久成人影 | 日韩 欧美 国产 综合 |