久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>時尚>可視化交叉驗證熱力圖python 還在一味追求看似漂亮

可視化交叉驗證熱力圖python 還在一味追求看似漂亮

發布時間:2024-07-31閱讀(12)

導讀最初看到熱力圖時,你是不是會從內心發出驚呼,看著特別有感覺?那老海就問第二個問題了,然后你還能看出什么來?顏色有深有淺?還有什么?能看出哪個區域大嗎?到底又....

最初看到熱力圖時,你是不是會從內心發出驚呼,看著特別有感覺?

那老海就問第二個問題了,然后你還能看出什么來?

顏色有深有淺?還有什么?能看出哪個區域大嗎?到底又大多少?

哈哈,這種感覺就是熱力圖的特點:如同蒙面美人的圖表類型!

OK,什么是熱力圖?

熱力圖 (Heat Map),“熱力圖” 一詞最初是由軟件設計師提出并創造的,專門用來描述實時金融市場信息的圖表類型。注意是軟件設計師提出的,不是視覺設計師,更不是數據分析師!

正因如此,就如同南丁格爾玫瑰圖一樣,都是特殊出身,因此用途局限性非常大

最早的熱力圖,都是在矩形色塊加上顏色變換。而當今我們說的大多是經過平滑模糊的熱力圖譜,這樣的熱力圖更容易讓人們理解和解讀。

熱力圖的基本數據樣式

不同的特征字段,在不同的數值上的統計情況,統計分布不同則顏色也變化。

熱力圖的使用建議
  1. 熱力圖在繪圖前盡量統一數據量綱、或者進行歸一化標準化處理
  2. 熱力圖的主要應用在整體全局的數據呈現,不適合局部精準數據展示
  3. 熱力圖的顏色帶來強烈的視覺沖擊力,數據準確度上較弱,很難來分辨具體大小
  4. 熱力圖常用來用表達分布,所以一般情況用彩虹色系(rainbow)來傳達這個分布變化
  5. 熱力圖背景常常是圖片或地圖,因此不需要必須有坐標軸。
下面開始具體的操作案例準備工作

## 初始字體設置,設置好可避免很多麻煩plt.rcParams[font.sans-serif]=[Source Han Sans CN] # 顯示中文不亂碼,思源黑體 plt.rcParams[font.size] = 22 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整plt.rcParams[axes.unicode_minus] = False # 顯示負數不亂碼## 初始化圖表大小plt.rcParams[figure.figsize] = (20.0, 8.0) # 設置figure_size尺寸## 初始化圖表分辨率質量plt.rcParams[savefig.dpi] = 300 # 設置圖表保存時的像素分辨率plt.rcParams[figure.dpi] = 300 # 設置圖表繪制時的像素分辨率## 圖表的顏色自定義colors = [#dc2624, #2b4750, #45a0a2, #e87a59, #7dcaa9, #649E7D, #dc8018, #C89F91, #6c6d6c, #4f6268, #c7cccf]plt.rcParams[axes.prop_cycle] = plt.cycler( color=colors)path = D:\\系列文章\\# 自定義文件路徑,可以自行設定os.chdir(path)# 設置為該路徑為工作路徑,一般存放數據源文件

設定圖表樣式和文件路徑

Financial_data = pd.read_excel(虛擬演示案例數據.xlsx,sheet_name=二維表)Financial_data

讀入數據

Financial_data = pd.read_excel(虛擬演示案例數據.xlsx,sheet_name=二維表)Financial_data

熱力圖的基本數據結構

熱力圖的基本顏色配色

各個數值在不同特征下的熱力情況

最基本的熱力圖原理,方便我們理解熱力這個概念是什么

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整# Financial_data = Financial_data.drop(分類,axis=1)targetlist = Financial_data.columns[1:] # 選擇需要的字段heatdata = round(Financial_data.loc[:,targetlist]/1000) # 為了展示方便,數據統一除以1000,并取四舍五入取整數# 利用sns.heatmap來畫熱圖sns.heatmap(heatdata, # 設置數據源 cmap=Greens, # 設置熱圖配色 annot=True, # 開啟設置顯示數字,默認不顯示 annot_kws={"size":8}, # 設置顯示數字的大小 vmax=10, # 設置顯示范圍最大值 vmin=0, # 設置顯示范圍最小值 center=5, # 設置顏色顯示中心的數值,來控制 yticklabels=True, # 設置Y軸標簽是否顯示 xticklabels=True, # 設置X軸標簽是否顯示,默認為顯示# xticklabels=4, # 可以設置顯示哪些標簽或者隱藏部分標簽,避免圖像混亂 cbar=True, # 設置顏色欄是否顯示,默認為顯示 linewidths=2, # 格子之間的間隔距離 linecolor=white) # 格子之間的間隔顏色sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

設定分組對象在不同特征下的熱力情況

可自定義我們需要參考的對比對象

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整# Financial_data = Financial_data.drop(分類,axis=1)# targetlist = Financial_data.columns[:] # 選擇需要的字段heatdata = Financial_data.set_index(門店城市,drop=True) # 設置參考對象列作為index索引# corr_matrix=heatdata.corr()# 利用sns.heatmap來畫熱圖sns.heatmap(heatdata, # 設置數據源 cmap=Greens, # 設置熱圖配色 annot=True, # 設置顯示數字 vmax=10, # 設置顯示范圍最大值 vmin=0, # 設置顯示范圍最小值 center=5, # 設置顏色顯示中心的數值,來控制 linewidths=2) # 格子之間的間隔距離sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

相關矩陣(平方)

除了查看統計分布,還可以查看不同變量之間的相關性,常用在特征選擇上

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整# Financial_data = Financial_data.drop(分類,axis=1)targetlist = Financial_data.columns[1:] # 選擇需要的字段heatdata = round(Financial_data.loc[:,targetlist]/1000) # 為了展示方便,數據統一除以1000,并取四舍五入取整數corr_matrix=heatdata.corr()# 利用sns.heatmap來畫熱圖sns.heatmap(corr_matrix, # 設置數據源 cmap=Greens, # 設置熱圖配色 annot=True, # 設置顯示數字 vmax=1, # 設置顯示范圍最大值 vmin=0, # 設置顯示范圍最小值 center=5, # 設置顏色顯示中心的數值,來控制 linewidths=2) # 格子之間的間隔距離sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

半相關熱圖

這是相關矩陣熱力圖的簡化版,因為對角矩陣的一半元素都是相同的,所以可以簡化

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整# Financial_data = Financial_data.drop(分類,axis=1)targetlist = Financial_data.columns[1:] # 選擇需要的字段heatdata = round(Financial_data.loc[:,targetlist]/1000) # 為了展示方便,數據統一除以1000,并取四舍五入取整數# 極值化MAX-MINnormalization_matrix=(heatdata-heatdata.min())/heatdata.max()# 正則化normalization_matrix=(heatdata-heatdata.mean())/heatdata.std()# 利用sns.heatmap來畫熱圖sns.heatmap(normalization_matrix, # 設置數據源 cmap=Greens, # 設置熱圖配色 annot=True, # 設置顯示數字 vmax=1, # 設置顯示范圍最大值 vmin=0, # 設置顯示范圍最小值 center=5, # 設置顏色顯示中心的數值,來控制 linewidths=2) # 格子之間的間隔距離sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

無量綱化熱力圖

有時數據的量綱規模變化很大,此時建議統一數據量綱,效果會好些

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整# Financial_data = Financial_data.drop(分類,axis=1)targetlist = Financial_data.columns[1:] # 選擇需要的字段heatdata = round(Financial_data.loc[:,targetlist]/1000) # 為了展示方便,數據統一除以1000,并取四舍五入取整數# 極值化MAX-MINnormalization_matrix=(heatdata-heatdata.min())/heatdata.max()# 正則化normalization_matrix=(heatdata-heatdata.mean())/heatdata.std()# 利用sns.heatmap來畫熱圖sns.heatmap(normalization_matrix, # 設置數據源 cmap=Greens, # 設置熱圖配色 annot=True, # 設置顯示數字 vmax=1, # 設置顯示范圍最大值 vmin=0, # 設置顯示范圍最小值 center=5, # 設置顏色顯示中心的數值,來控制 linewidths=2) # 格子之間的間隔距離sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

樹形 熱力圖

這是混合圖表應用,用途特別有些,有時候數據圖表都堆在一起,看著就亂,不推薦

plt.rcParams[figure.figsize] = (10, 10) # 設置figure_size尺寸plt.rcParams[font.size] = 10 # 設置圖表全局字體大小,后期某個元素的字體大小可以自行調整heatdata = Financial_data.set_index(門店城市,drop=True) # 設置參考對象列作為index索引# # 利用sns.heatmap來畫熱圖# sns.heatmap(heatdata, # 設置數據源# cmap=Greens, # 設置熱圖配色# annot=True, # 設置顯示數字# vmax=1, # 設置顯示范圍最大值# vmin=0, # 設置顯示范圍最小值# center=5, # 設置顏色顯示中心的數值,來控制# linewidths=2) # 格子之間的間隔距離# 距離相似性的設置sns.clustermap(heatdata.iloc[:20,:], metric="correlation", # 距離相似性,設置為相似性:"correlation",歐氏距離:"euclidean" method="single", # 聚類的方法,設置為最近點算法:"single",方差最小化算法:"Ward" cmap="Blues", # 設置熱圖配色 standard_scale=1, # 歸一化設置,還可設置z_score=1的方法 robust=True, # 離群值檢驗,默認為不開啟,這里設置開啟離群值研究# row_colors=row_colors )sns.despine() # 默認無參數狀態,就是刪除上方和右方的邊框,matplotlib貌似做不到plt.show()

寫在最后

上一篇介紹氣泡圖,而熱力圖給人的視覺沖擊力更強,當然也就變得更不精準

我們使用圖表的目標不同,選擇圖表時就得非常注意,

熱力圖我一般是不會選擇的,商業分析一般要求務必表達精準,所以它不適合

更多的時候是在做機器學習的特征選擇時,會探索一下變量間的相關性如何。

OK,今天先到這里了,老海日常隨筆總結,碼字不易,初心不改!

如果覺得喜歡,請動動小手關注和轉發,鼓勵一下我們。

我是老海,來自數據煉金術師

歡迎分享轉載→http://www.avcorse.com/read-365427.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖