如何透過遍歷每一行在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)
輸出
執行上述程式後,將生成以下輸出: