Bài viết đăng tại: https://programming.laptrinh.site
Mối tương quan là một yếu tố cơ bản quan trọng đối với các nhà khoa học dữ liệu. Nó cho biết các biến trong tập dữ liệu có liên quan với nhau như thế nào và cách chúng di chuyển liên quan đến nhau. Giá trị của tương quan nằm trong khoảng từ -1 đến +1. 0 Tương quan chỉ ra rằng hai biến độc lập với nhau. Một mối tương quan tích cực chỉ ra rằng các biến di chuyển theo cùng một hướng và một mối tương quan tiêu cực cho thấy điều ngược lại.
Chúng ta có thể vẽ ma trận tương quan bằng cách sử dụng mô-đun seaborn
. Nó giúp hiểu tập dữ liệu một cách dễ dàng và được sử dụng rất thường xuyên cho công việc phân tích.
Hướng dẫn này sẽ giới thiệu cách vẽ đồ thị ma trận tương quan trong Python bằng hàm seaborn.heatmap()
.
Bản đồ nhiệt được sử dụng để biểu thị các giá trị ma trận bằng đồ họa với các sắc thái màu khác nhau cho các giá trị khác nhau. Nó hình dung ma trận tổng thể rất rõ ràng.
Trong đoạn mã dưới đây, chúng tôi sẽ biểu diễn một ma trận tương quan bằng cách sử dụng bản đồ nhiệt trong Python.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2],
"Day 3" : [4,6,5,8,6,1,2,3],
"Day 4" : [5,8,9,5,1,7,8,9]})
sns.heatmap(df.corr())
Đoạn mã trên tạo ra một sơ đồ nhiệt tương quan cơ bản. Hàm corr()
được sử dụng để trả về ma trận tương quan của DataFrame. Chúng ta cũng có thể tính toán các loại tương quan khác bằng hàm này. Lưu ý rằng bóng màu cho từng giá trị trong thanh trục màu.
Chúng tôi cũng có thể tùy chỉnh con số cuối cùng bằng cách sử dụng các thông số khác nhau. Xem mã dưới đây.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2],
"Day 3" : [4,6,5,8,6,1,2,3],
"Day 4" : [5,8,9,5,1,7,8,9]})
sns.heatmap(df.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm')
Lưu ý việc sử dụng rất nhiều tham số. Các đối số vmin
và vmax
được sử dụng để chỉ định tỷ lệ cho trục màu. đối số cmap
ở đây làm thay đổi bảng màu được sử dụng cho cốt truyện. Tham số annot
được sử dụng để hiển thị các giá trị tương quan trên các ô vuông. Chúng ta có thể sử dụng thêm các tham số linewidth
và linecolor
để làm tối các đường viền của hình vuông và chỉ định màu của đường viền. Chúng ta có thể tùy chỉnh thanh màu bằng đối số cbar_kws
.
Lưu ý rằng nếu bạn loại bỏ một nửa dữ liệu ở một bên của đường chéo chính, bạn sẽ không mất bất kỳ thông tin quan trọng nào vì nó được lặp lại. Do đó, chúng ta cũng có thể tạo một biểu đồ hình tam giác.
Đoạn mã dưới đây đạt được điều này.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2],
"Day 3" : [4,6,5,8,6,1,2,3],
"Day 4" : [5,8,9,5,1,7,8,9]})
upp_mat = np.triu(df.corr())
sns.heatmap(df.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm', mask = upp_mat)
Trong đoạn mã trên, trước tiên chúng ta sử dụng numpy.triu()
, trả về tam giác trên của ma trận, sau đó chúng ta che dấu điều này bằng cách sử dụng đối số mask
của hàm heatmap()
. Tương tự, chúng ta có thể che hình tam giác bên dưới bằng cách sử dụng hàm numpy.tril()
.
Một biểu diễn thú vị khác mà chúng ta có thể nhận được là chúng ta chỉ có thể ánh xạ một biến và tìm mối tương quan của nó với các biến khác nhau.
Ví dụ,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2],
"Day 3" : [4,6,5,8,6,1,2,3],
"Day 4" : [5,8,9,5,1,7,8,9]})
upp_mat = np.triu(df.corr())
sns.heatmap(df.corr()[['Day 1']], vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm')
Trong ví dụ trên, chúng tôi vẽ biểu đồ tương quan của biến Day 1
với các biến khác.
URL Link
https://laptrinh.site/ban-do-nhiet-tuong-quan-trong-seaborn/
Viết bởi Duy Mạnh. Đã đăng ký bản quyền tác giả tại Creativecommons và DMCA