Hướng dẫn how do you plot covariance in python? - làm thế nào để bạn vẽ biểu đồ hiệp phương sai trong python?

Tìm cách tạo ra một ma trận hiệp phương sai bằng Python?

Nếu vậy, bạn sẽ thấy cách tạo ra một ma trận như vậy bằng cả Numpy và Pandas.

Bước 1: Thu thập dữ liệu

Để bắt đầu, bạn sẽ cần thu thập dữ liệu sẽ được sử dụng cho ma trận hiệp phương sai.

Đối với các mục đích trình diễn, hãy để sử dụng dữ liệu sau đây về 3 biến:

Một B C
45 38 10
37 31 15
42 26 17
35 28 21
39 33 12

Bước 2: Nhận ma trận hiệp phương sai dân số bằng cách sử dụng Python

Để có được ma trận hiệp phương sai dân số (dựa trên N), bạn sẽ cần phải đặt sự thiên vị thành đúng trong mã dưới đây.

Đây là mã Python hoàn chỉnh để lấy ma trận hiệp phương sai dân số bằng cách sử dụng gói Numpy:

import numpy as np

A = [45, 37, 42, 35, 39]
B = [38, 31, 26, 28, 33]
C = [10, 15, 17, 21, 12]

data = np.array([A, B, C])

cov_matrix = np.cov(data, bias=True)
print(cov_matrix)

Chạy mã và bạn sẽ nhận được ma trận sau:

[[ 12.64   7.68  -9.6 ]
 [  7.68  17.36 -13.8 ]
 [ -9.6  -13.8   14.8 ]]

Bước 3: Nhận biểu diễn trực quan của ma trận

Bạn có thể sử dụng các gói Seaborn và Matplotlib để đại diện trực quan ma trận hiệp phương sai.

Đây là mã hoàn chỉnh mà bạn có thể áp dụng trong Python:

import numpy as np
import seaborn as sn
import matplotlib.pyplot as plt

A = [45, 37, 42, 35, 39]
B = [38, 31, 26, 28, 33]
C = [10, 15, 17, 21, 12]

data = np.array([A, B, C])

cov_matrix = np.cov(data,bias=True)
sn.heatmap(cov_matrix, annot=True, fmt='g')
plt.show()

Xuất phát ma trận hiệp phương sai mẫu

Để có được hiệp phương sai mẫu (dựa trên N-1), bạn sẽ cần phải đặt sai lệch thành sai trong mã bên dưới.

Đây là mã dựa trên gói Numpy:

import numpy as np

A = [45, 37, 42, 35, 39]
B = [38, 31, 26, 28, 33]
C = [10, 15, 17, 21, 12]

data = np.array([A, B, C])

covMatrix = np.cov(data, bias=False)
print(covMatrix)

Và đây là ma trận mà bạn sẽ nhận được:

[[ 15.8    9.6  -12.  ]
 [  9.6   21.7  -17.25]
 [-12.   -17.25  18.5 ]]

Bạn cũng có thể sử dụng gói Pandas để có được ma trận hiệp phương sai mẫu.

Sau đó, bạn có thể áp dụng mã sau bằng Pandas:

import pandas as pd

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)

cov_matrix = pd.DataFrame.cov(df)
print(cov_matrix)

Bạn có thể nhận được cùng một ma trận như được bắt nguồn bởi Numpy:

      A      B      C
A  15.8   9.60 -12.00
B   9.6  21.70 -17.25
C -12.0 -17.25  18.50

Cuối cùng, bạn có thể đại diện trực quan ma trận hiệp phương sai bằng cách sử dụng các gói SeaBorn và Matplotlib:

import pandas as pd
import seaborn as sn
import matplotlib.pyplot as plt

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)

cov_matrix = pd.DataFrame.cov(df)
sn.heatmap(cov_matrix, annot=True, fmt='g')
plt.show()

Bạn cũng có thể muốn kiểm tra nguồn sau giải thích các bước đầy đủ để tạo ma trận nhầm lẫn bằng Python. Ngoài ra, bạn có thể kiểm tra hướng dẫn này cho các bước để tạo ma trận tương quan trong Python.

Hướng dẫn về cách tính toán và trực quan hóa ma trận hiệp phương sai bằng cách sử dụng gói Python Seaborn

Hình ảnh của tác giả.

Ma trận hiệp phương sai là một trong những ma trận quan trọng nhất trong khoa học dữ liệu và học máy.Ma trận hiệp phương sai cung cấp các hệ số tương quan giữa các tính năng trong bộ dữ liệu và

Ngạc nhiên khi thấy không ai đề cập đến các lựa chọn thay thế có khả năng, tương tác và dễ sử dụng hơn.

A) Bạn có thể sử dụng Plotly:

  1. Chỉ cần hai dòng và bạn nhận được:

  2. interactivity,

  3. quy mô trơn tru,

  4. Màu sắc dựa trên toàn bộ dữ liệu thay vì các cột riêng lẻ,

  5. Tên cột & chỉ số hàng trên trục,

  6. Phóng to,

  7. panning,

  8. Khả năng một cú nhấp chuột tích hợp để lưu nó dưới dạng định dạng PNG,

  9. auto-scaling,

  10. so sánh về di chuột,

  11. Bong bóng hiển thị các giá trị để HeatMap vẫn có vẻ tốt và bạn có thể thấy các giá trị bất cứ nơi nào bạn muốn:

import plotly.express as px
fig = px.imshow(df.corr())
fig.show()

Hướng dẫn how do you plot covariance in python? - làm thế nào để bạn vẽ biểu đồ hiệp phương sai trong python?

B) Bạn cũng có thể sử dụng Bokeh:

Tất cả các chức năng giống nhau với một chút rắc rối.Nhưng vẫn đáng giá nếu bạn không muốn chọn tham gia vào âm mưu và vẫn muốn tất cả những điều này:

from bokeh.plotting import figure, show, output_notebook
from bokeh.models import ColumnDataSource, LinearColorMapper
from bokeh.transform import transform
output_notebook()
colors = ['#d7191c', '#fdae61', '#ffffbf', '#a6d96a', '#1a9641']
TOOLS = "hover,save,pan,box_zoom,reset,wheel_zoom"
data = df.corr().stack().rename("value").reset_index()
p = figure(x_range=list(df.columns), y_range=list(df.index), tools=TOOLS, toolbar_location='below',
           tooltips=[('Row, Column', '@level_0 x @level_1'), ('value', '@value')], height = 500, width = 500)

p.rect(x="level_1", y="level_0", width=1, height=1,
       source=data,
       fill_color={'field': 'value', 'transform': LinearColorMapper(palette=colors, low=data.value.min(), high=data.value.max())},
       line_color=None)
color_bar = ColorBar(color_mapper=LinearColorMapper(palette=colors, low=data.value.min(), high=data.value.max()), major_label_text_font_size="7px",
                     ticker=BasicTicker(desired_num_ticks=len(colors)),
                     formatter=PrintfTickFormatter(format="%f"),
                     label_standoff=6, border_line_color=None, location=(0, 0))
p.add_layout(color_bar, 'right')

show(p)

Hướng dẫn how do you plot covariance in python? - làm thế nào để bạn vẽ biểu đồ hiệp phương sai trong python?