如何透過遍歷每一行在Python中建立相關矩陣?


相關矩陣是一個包含許多變數的相關係數的表格。表格中的每個單元格表示兩個變數之間的相關性。值可能介於 -1 和 1 之間。相關矩陣用於資料彙總、高階分析診斷以及作為更復雜研究的輸入。

相關矩陣用於表示資料集中變數之間的關係。它是一種幫助程式設計師分析資料元件之間關係的矩陣。它表示 0 到 1 之間的相關係數。

正值表示良好的相關性,負值表示弱/低相關性,值為零 (0) 表示給定變數集之間沒有依賴關係。

迴歸分析和相關矩陣顯示了以下觀察結果:

  • 識別資料集中自變數之間的關係。

  • 幫助從資料集中選擇重要且非冗餘的變數。

  • 這僅適用於數值型或連續型變數。

在本文中,我們將向您展示如何使用 Python 建立相關矩陣。

假設我們已經獲取了一個名為 **starbucksMenu.csv** 的 CSV 檔案,其中包含一些隨機資料。我們需要為資料集中指定的列建立相關矩陣並繪製相關矩陣。

輸入檔案資料

starbucksMenu.csv

商品名稱 卡路里 脂肪 碳水化合物 纖維 蛋白質
             
酷萊姆星巴克清爽™ 45 0 11 0 0 10
Evolution Fresh™ 有機姜味青檸汽水 80 0 18 1 0 10
冰咖啡 60 0 14 1 0 10
Tazo® 瓶裝莓花白茶 0 0 0 0 0 0
Tazo® 瓶裝黑莓 130 2.5 21 0 5 65
Tazo® 瓶裝巨型桃子 140 2.5 23 0 5 90
Tazo® 瓶裝冰鎮百香果 130 2.5 21 0 5 65
Tazo® 瓶裝李子石榴 80 0 19 0 0 10
Tazo® 瓶裝塔佐莓 60 0 15 0 0 10
Tazo® 瓶裝白蔓越莓 150 0 38 0 0 15

建立相關矩陣

我們將繪製資料集的三列(它們是獨立的連續變數)的相關矩陣。

  • 碳水化合物
  • 蛋白質

演算法(步驟)

以下是執行所需任務的演算法/步驟:

  • 匯入 os、pandas、NumPy 和 seaborn 庫。

  • 使用 **read_csv()** 函式讀取給定的 CSV 檔案(將 CSV 檔案載入為 pandas 資料框)。

  • 從給定的資料集中建立必須建立相關矩陣的列列表。

  • 使用 **corr()** 函式建立相關矩陣(它計算資料框中所有列的成對相關性。任何 **na(空)** 值都會自動過濾掉。對於資料框中的任何非數值資料型別列,它都會被丟棄)。

  • 列印資料集指定列的相關矩陣。

  • 使用 seaborn 庫的 **heatmap()** 函式繪製相關矩陣(對於要繪製的每個值,熱圖具有指示相同顏色幾種陰影的值。圖表中較深的顏色通常表示比較淺的顏色更高的值。同樣可以為明顯不同的值使用完全不同的顏色)。

將資料集匯入 Pandas 資料框

現在,我們首先將任何樣本資料集(這裡我們使用 starbucksMenu.csv)匯入 pandas 資料框並列印它。

示例 1

# Import pandas module as pd using the import keyword import pandas as pd # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') print(givenDataset)

輸出

商品名稱 卡路里 脂肪 碳水化合物 纖維 蛋白質
             
酷萊姆星巴克清爽™ 45 0 11 0 0 10
Evolution Fresh™ 有機姜味青檸汽水 80 0 18 1 0 10
冰咖啡 60 0 14 1 0 10
Tazo® 瓶裝莓花白茶 0 0 0 0 0 0
Tazo® 瓶裝黑莓 130 2.5 21 0 5 65
Tazo® 瓶裝巨型桃子 140 2.5 23 0 5 90
Tazo® 瓶裝冰鎮百香果 130 2.5 21 0 5 65
Tazo® 瓶裝李子石榴 80 0 19 0 0 10
Tazo® 瓶裝塔佐莓 60 0 15 0 0 10
Tazo® 瓶裝白蔓越莓 150 0 38 0 0 15

匯入資料集後建立相關矩陣

以下程式演示瞭如何為給定資料集建立相關矩陣、列印它們以及繪製相關矩陣:

示例 2

import os # Importing pandas module import pandas as pd import numpy as np import seaborn # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') # Assigning the list of columns from the dataset numericColumns = ['Carb','Protein','Sodium'] # Creating a correlation matrix correlationMatrix = givenDataset.loc[:,numericColumns].corr() # Printing the correlation matrix. print(correlationMatrix) # Displaying the correlation matrix seaborn.heatmap(correlationMatrix, annot=True)

輸出

執行上述程式後,將生成以下輸出:

在本教程中,您學習瞭如何使用 Python 和 Pandas 計算相關矩陣。此外,您還學習瞭如何使用 Pandas corr() 方法生成相關矩陣,以及如何使用 Seaborn 庫的 heatmap 函式顯示矩陣,從而可以更輕鬆地直觀瞭解資料。

更新於:2022年8月10日

3000+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告