Khoa học Dữ liệu - Ma trận Tương quan Thống kê
Ma trận tương quan
Ma trận là một mảng số được sắp xếp theo hàng và cột.
Ma trận tương quan chỉ đơn giản là một bảng thể hiện hệ số tương quan giữa các biến.
Ở đây, các biến được thể hiện trong hàng đầu tiên và trong cột đầu tiên:
Bảng trên đã sử dụng dữ liệu từ tập dữ liệu sức khỏe đầy đủ.
Quan sát:
- Chúng tôi nhận thấy rằng Duration và Calorie_Burnage có liên quan chặt chẽ với nhau, với hệ số tương quan là 0,89. Điều này có ý nghĩa khi chúng ta tập luyện càng lâu thì lượng calo đốt cháy càng nhiều
- Chúng tôi quan sát thấy rằng hầu như không có mối quan hệ tuyến tính nào giữa Average_Pulse và Calorie_Burnage (hệ số tương quan 0,02)
- Chúng ta có thể kết luận rằng Average_Pulse không ảnh hưởng đến Calorie_Burnage không? Không. Chúng tôi sẽ trở lại để trả lời câu hỏi này sau!
Ma trận tương quan trong Python
Chúng ta có thể sử dụng corr()
hàm trong Python để tạo ma trận tương quan. Chúng tôi cũng sử dụng round()
hàm để làm tròn đầu ra thành hai số thập phân:
Thí dụ
Corr_Matrix = round(full_health_data.corr(),2)
print(Corr_Matrix)
Đầu ra:
Sử dụng Bản đồ nhiệt
Chúng ta có thể sử dụng Bản đồ nhiệt để Hình dung mối tương quan giữa các biến:
Hệ số tương quan càng gần với 1, các ô vuông càng xanh.
Hệ số tương quan càng gần -1, hình vuông càng nâu.
Sử dụng Seaborn để tạo bản đồ nhiệt
Chúng ta có thể sử dụng thư viện Seaborn để tạo một bản đồ nhiệt tương quan (Seaborn là một thư viện trực quan hóa dựa trên matplotlib):
Thí dụ
import matplotlib.pyplot as plt
import seaborn as sns
correlation_full_health =
full_health_data.corr()
axis_corr = sns.heatmap(
correlation_full_health,
vmin=-1, vmax=1, center=0,
cmap=sns.diverging_palette(50,
500, n=500),
square=True
)
plt.show()
Giải thích ví dụ:
- Nhập seaborn thư viện dưới dạng sns.
- Sử dụng bộ full_health_data.
- Sử dụng sns.heatmap () để nói với Python rằng chúng ta muốn có một bản đồ nhiệt để trực quan hóa ma trận tương quan.
- Sử dụng ma trận tương quan. Xác định các giá trị cực đại và cực tiểu của bản đồ nhiệt. Xác định rằng 0 là tâm.
- Xác định màu với sns.diverging_palette. n = 500 nghĩa là chúng ta muốn có 500 loại màu trong cùng một bảng màu.
- square = True có nghĩa là chúng ta muốn xem các hình vuông.