Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Tôi thích bài đăng của Addison Klinke nhất, là gợi ý đơn giản nhất, nhưng đã sử dụng Wojciech Moszczyńsk, để lọc và biểu đồ, nhưng đã mở rộng bộ lọc để tránh các giá trị tuyệt đối, do đó, được đưa ra một ma trận tương quan lớn, lọc nó, biểu đồ, và sau đó làm phẳng nó:

Đã tạo, lọc và biểu đồ

dfCorr = df.corr()
filteredDf = dfCorr[((dfCorr >= .5) | (dfCorr <= -.5)) & (dfCorr !=1.000)]
plt.figure(figsize=(30,10))
sn.heatmap(filteredDf, annot=True, cmap="Reds")
plt.show()

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Hàm số

Cuối cùng, tôi đã tạo ra một hàm nhỏ để tạo ma trận tương quan, lọc nó và sau đó làm phẳng nó. Như một ý tưởng, nó có thể dễ dàng được mở rộng, ví dụ, giới hạn trên và dưới không đối xứng, v.v.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Follow-Up

Cuối cùng, tôi đã tinh chỉnh các chức năng

# Returns correlation matrix
def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    return xFiltered

# flattens correlation matrix with bounds
def corrFilterFlattened(x: pd.DataFrame, bound: float):
    xFiltered = corrFilter(x, bound)
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

# Returns correlation for a variable from flattened correlation matrix
def filterForLabels(df: pd.DataFrame, label):  
    try:
        sideLeft = df[label,]
    except:
        sideLeft = pd.DataFrame()

    try:
        sideRight = df[:,label]
    except:
        sideRight = pd.DataFrame()

    if sideLeft.empty and sideRight.empty:
        return pd.DataFrame()
    elif sideLeft.empty:        
        concat = sideRight.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    elif sideRight.empty:
        concat = sideLeft.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    else:
        concat = pd.concat([sideLeft,sideRight], axis=1)
        concat["Corr"] = concat[0].fillna(0) + concat[1].fillna(0)
        concat.drop(columns=[0,1], inplace=True)
        return concat

Trong blog này, chúng tôi sẽ trải qua một thống kê mô tả quan trọng về dữ liệu đa biến được gọi là ma trận tương quan. Chúng ta sẽ học cách tạo, cốt truyện và thao túng các ma trận tương quan trong Python.

Chúng tôi sẽ xem xét các chủ đề sau:

  • Ma trận tương quan là gì?
    • Hệ số tương quan là gì?
  • Tìm ma trận tương quan của dữ liệu đã cho
  • Vẽ ma trận tương quan
  • Diễn giải ma trận tương quan
  • Thêm tiêu đề và nhãn vào cốt truyện
  • Sắp xếp ma trận tương quan
  • Chọn các cặp tương quan tiêu cực
  • Chọn các cặp tương quan mạnh (lớn hơn 0,5)
  • Chuyển đổi ma trận hiệp phương sai thành ma trận tương quan
  • Xuất ma trận tương quan sang hình ảnh
  • Sự kết luận

Ma trận tương quan là gì?

Hệ số tương quan là gì?

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Tìm ma trận tương quan của dữ liệu đã cho

Vẽ ma trận tương quan

Diễn giải ma trận tương quan

Thêm tiêu đề và nhãn vào cốt truyện

Sắp xếp ma trận tương quancorrelation coefficient‘ between the two variables corresponding to the row and column of the cell.

Chọn các cặp tương quan tiêu cực

Hệ số tương quan là gì?

Tìm ma trận tương quan của dữ liệu đã cho

Vẽ ma trận tương quan

Nó được định nghĩa là hiệp phương sai giữa hai biến chia cho sản phẩm của độ lệch chuẩn của hai biến. Trong đó hiệp phương sai giữa X và Y Cov (X, Y) được định nghĩa thêm là giá trị dự kiến ​​của sản phẩm của độ lệch của X và Y so với phương tiện tương ứng của chúng. Công thức cho hiệp phương sai sẽ làm cho nó rõ ràng hơn. Vì vậy, công thức cho mối tương quan Pearson, sau đó sẽ trở thành: giá trị của ρ nằm giữa -1 đến +1. Các giá trị gần +1 cho thấy sự hiện diện của mối quan hệ tích cực mạnh mẽ giữa X và Y, trong khi các giá trị gần -1 cho thấy mối quan hệ tiêu cực mạnh mẽ giữa các giá trị X và Y. gần với không có nghĩa là không có bất kỳ mối quan hệ nào giữa X và Y.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Where the covariance between X and Y COV(X, Y) is further defined as the ‘expected value of the product of the deviations of X and Y from their respective means’.
The formula for covariance would make it clearer.
Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

So the formula for Pearson’s correlation would then become:
Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

The value of ρ lies between -1 and +1.
Values nearing +1 indicate the presence of a strong positive relation between X and Y, whereas those nearing -1 indicate a strong negative relation between X and Y.
Values near to zero mean there is an absence of any relationship between X and Y.

Tìm ma trận tương quan của dữ liệu đã cho

Chúng ta hãy tạo dữ liệu ngẫu nhiên cho hai biến và sau đó xây dựng ma trận tương quan cho chúng.

import numpy as np
np.random.seed(10)
# generating 10 random values for each of the two variables
X = np.random.randn(10)
Y = np.random.randn(10)
# computing the corrlation matrix
C = np.corrcoef(X,Y)
print(C)

Đầu ra: Vì chúng tôi tính toán ma trận tương quan của 2 biến, kích thước của nó là 2 x 2. Giá trị 0,02 cho thấy không tồn tại mối quan hệ giữa hai biến. Điều này đã được mong đợi vì giá trị của chúng được tạo ngẫu nhiên.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Since we compute the correlation matrix of 2 variables, its dimensions are 2 x 2.
The value 0.02 indicates there doesn’t exist a relationship between the two variables. This was expected since their values were generated randomly.

Trong ví dụ này, chúng tôi đã sử dụng phương thức Numpy từ & NBSP; `Corrcoef` & nbsp; để tạo ma trận tương quan. Tuy nhiên, phương pháp này có một giới hạn ở chỗ nó chỉ có thể tính toán ma trận tương quan giữa 2 biến.`corrcoef` method to generate the correlation matrix.
However, this method has a limitation in that it can compute the correlation matrix between 2 variables only.

Do đó, đi trước, chúng tôi sẽ sử dụng các khung dữ liệu gấu trúc để lưu trữ dữ liệu và để tính toán ma trận tương quan trên chúng.

Vẽ ma trận tương quan

Đối với lời giải thích này, chúng tôi sẽ sử dụng một bộ dữ liệu có nhiều hơn chỉ hai tính năng.

Chúng tôi sẽ sử dụng dữ liệu ung thư vú, một dữ liệu phân loại nhị phân phổ biến được sử dụng trong các bài học ML giới thiệu. Chúng tôi sẽ tải tập dữ liệu này từ SCIKIT-LEARN từ & NBSP; ________ 17 & nbsp; mô-đun. Nó được trả lại dưới dạng các mảng numpy, nhưng chúng tôi sẽ chuyển đổi chúng thành gấu trúc DataFrame.
We will load this data set from the scikit-learn’s 

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
7 module.
It is returned in the form of NumPy arrays, but we will convert them into Pandas DataFrame.

from sklearn.datasets import load_breast_cancer
import pandas as pd
breast_cancer = load_breast_cancer()
data = breast_cancer.data
features = breast_cancer.feature_names
df = pd.DataFrame(data, columns = features)
print(df.shape)
print(features)

Đầu ra: Có 30 tính năng trong dữ liệu, tất cả đều được liệt kê trong đầu ra ở trên.:

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

There are 30 features in the data, all of which are listed in the output above.

Mục tiêu của chúng tôi bây giờ là xác định mối quan hệ giữa từng cặp của các cột này. Chúng tôi sẽ làm như vậy bằng cách vẽ ma trận tương quan.

Để giữ cho mọi thứ đơn giản, chúng tôi sẽ chỉ sử dụng sáu cột đầu tiên và vẽ ma trận tương quan của chúng. Để vẽ Ma trận, chúng tôi sẽ sử dụng một thư viện trực quan phổ biến có tên & nbsp; Seaborn, & nbsp; được xây dựng trên đỉnh của matplotlib.
To plot the matrix, we will use a popular visualization library called seaborn, which is built on top of matplotlib.

import seaborn as sns
import matplotlib.pyplot as plt
# taking all rows but only 6 columns
df_small = df.iloc[:,:6]
correlation_mat = df_small.corr()
sns.heatmap(correlation_mat, annot = True)
plt.show()

Đầu ra: Biểu đồ hiển thị ma trận 6 x 6 và tạo màu cho mỗi ô dựa trên hệ số tương quan của cặp đại diện cho nó.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

The plot shows a 6 x 6 matrix and color-fills each cell based on the correlation coefficient of the pair representing it.

Pandas DataFrame từ & nbsp; ________ 18 & nbsp; phương thức được sử dụng để tính toán ma trận. Theo mặc định, nó tính toán hệ số tương quan Pearson. Chúng tôi cũng có thể sử dụng các phương pháp khác như hệ số Spearman, hoặc hệ số tương quan Kendall Tau bằng cách chuyển một giá trị thích hợp cho tham số & nbsp; ____ 19.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
8 method is used to compute the matrix. By default, it computes the Pearson’s correlation coefficient.
We could also use other methods such as Spearman’s coefficient or Kendall Tau correlation coefficient by passing an appropriate value to the parameter 
def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
9.

Chúng tôi đã sử dụng SeaBorn từ & NBSP; Tham số ‘

# Returns correlation matrix
def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    return xFiltered

# flattens correlation matrix with bounds
def corrFilterFlattened(x: pd.DataFrame, bound: float):
    xFiltered = corrFilter(x, bound)
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

# Returns correlation for a variable from flattened correlation matrix
def filterForLabels(df: pd.DataFrame, label):  
    try:
        sideLeft = df[label,]
    except:
        sideLeft = pd.DataFrame()

    try:
        sideRight = df[:,label]
    except:
        sideRight = pd.DataFrame()

    if sideLeft.empty and sideRight.empty:
        return pd.DataFrame()
    elif sideLeft.empty:        
        concat = sideRight.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    elif sideRight.empty:
        concat = sideLeft.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    else:
        concat = pd.concat([sideLeft,sideRight], axis=1)
        concat["Corr"] = concat[0].fillna(0) + concat[1].fillna(0)
        concat.drop(columns=[0,1], inplace=True)
        return concat
1‘ Hiển thị các giá trị của hệ số tương quan trong mỗi ô.

Bây giờ chúng ta hiểu cách diễn giải ma trận hệ số tương quan được vẽ.

Diễn giải ma trận tương quan

Trước tiên, hãy tái tạo ma trận được tạo ra trong phần trước và sau đó thảo luận về nó. Bạn phải ghi nhớ các điểm sau liên quan đến các ma trận tương quan như điểm nào được hiển thị ở trên:

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

You must keep the following points in mind with regards to the correlation matrices such as the one shown above:

  1. Mỗi ô trong lưới đại diện cho giá trị của hệ số tương quan giữa hai biến.
  2. Giá trị tại vị trí (a, b) biểu thị hệ số tương quan giữa các tính năng ở hàng A và cột b. Điều này sẽ bằng với giá trị tại vị trí (b, a)
  3. Đó là A & NBSP; Ma trận & NBSP; mỗi hàng đại diện cho một biến và tất cả các cột biểu thị các biến giống nhau như các hàng, do đó số lượng hàng = số lượng cột.square matrix – each row represents a variable, and all the columns represent the same variables as rows, hence the number of rows = number of columns.
  4. Đó là A & NBSP; Symmetric & NBSP; Matrix - điều này có ý nghĩa bởi vì mối tương quan giữa A, B sẽ giống như giữa b, a.symmetric matrix – this makes sense because the correlation between a,b will be the same as that between b, a.
  5. Tất cả & nbsp; các phần tử chéo là 1. Vì các phần tử chéo biểu thị mối tương quan của từng biến với chính nó, nó sẽ luôn bằng 1.diagonal elements are 1. Since diagonal elements represent the correlation of each variable with itself, it will always be equal to 1.
  6. Các trục đánh dấu biểu thị tính năng mỗi chúng đại diện.
  7. Một giá trị dương lớn (gần 1.0) cho thấy mối tương quan dương mạnh mẽ, tức là, nếu giá trị của một trong các biến tăng, giá trị của biến khác cũng tăng.
  8. Một giá trị âm lớn (gần -1.0) cho thấy mối tương quan âm mạnh, tức là, giá trị của một biến giảm khi tăng và ngược lại và ngược lại.
  9. Một giá trị gần 0 (cả dương hoặc âm) cho thấy sự vắng mặt của bất kỳ mối tương quan nào giữa hai biến và do đó các biến đó độc lập với nhau.
  10. Mỗi ô trong ma trận trên cũng được biểu thị bằng các sắc thái của một màu. Ở đây các sắc thái tối hơn của màu biểu thị các giá trị nhỏ hơn trong khi các sắc thái sáng hơn tương ứng với các giá trị lớn hơn (gần 1). Thang đo này được đưa ra với sự trợ giúp của một thanh màu ở phía bên phải của cốt truyện.
    This scale is given with the help of a color-bar on the right side of the plot.

Thêm tiêu đề và nhãn vào cốt truyện

Chúng ta có thể điều chỉnh ma trận tương quan được tạo, giống như bất kỳ âm mưu matplotlib nào khác. Hãy cho chúng tôi xem làm thế nào chúng ta có thể thêm một tiêu đề vào ma trận và nhãn vào các trục.

correlation_mat = df_small.corr()
sns.heatmap(correlation_mat, annot = True)
plt.title("Correlation matrix of Breast Cancer data")
plt.xlabel("cell nucleus features")
plt.ylabel("cell nucleus features")
plt.show()

Đầu ra: Nếu chúng tôi muốn, chúng tôi cũng có thể thay đổi vị trí của tiêu đề thành dưới cùng bằng cách chỉ định vị trí y.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

If we want, we could also change the position of the title to bottom by specifying the y position.

correlation_mat = df_small.corr()
sns.heatmap(correlation_mat, annot = True)
plt.title("Correlation matrix of Breast Cancer data", y=-0.75)
plt.xlabel("cell nucleus features")
plt.ylabel("cell nucleus features")
plt.show()

Output:

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Sắp xếp ma trận tương quan

Nếu dữ liệu đã cho có một số lượng lớn các tính năng, ma trận tương quan có thể trở nên rất lớn và do đó khó diễn giải.

Đôi khi chúng ta có thể muốn sắp xếp các giá trị trong ma trận và thấy cường độ tương quan giữa các cặp tính năng khác nhau theo thứ tự tăng hoặc giảm. Hãy cho chúng tôi xem làm thế nào chúng ta có thể đạt được điều này.
Let us see how we can achieve this.

Đầu tiên, chúng tôi sẽ chuyển đổi ma trận đã cho thành một chuỗi các giá trị một chiều.

correlation_mat = df_small.corr()
corr_pairs = correlation_mat.unstack()
print(corr_pairs)

Đầu ra: Phương thức & nbsp; Tên.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

The 
# Returns correlation matrix
def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    return xFiltered

# flattens correlation matrix with bounds
def corrFilterFlattened(x: pd.DataFrame, bound: float):
    xFiltered = corrFilter(x, bound)
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

# Returns correlation for a variable from flattened correlation matrix
def filterForLabels(df: pd.DataFrame, label):  
    try:
        sideLeft = df[label,]
    except:
        sideLeft = pd.DataFrame()

    try:
        sideRight = df[:,label]
    except:
        sideRight = pd.DataFrame()

    if sideLeft.empty and sideRight.empty:
        return pd.DataFrame()
    elif sideLeft.empty:        
        concat = sideRight.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    elif sideRight.empty:
        concat = sideLeft.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    else:
        concat = pd.concat([sideLeft,sideRight], axis=1)
        concat["Corr"] = concat[0].fillna(0) + concat[1].fillna(0)
        concat.drop(columns=[0,1], inplace=True)
        return concat
2 method on the Pandas DataFrame returns a Series with MultiIndex.That is, each value in the Series is represented by more than one indices, which in this case are the row and column indices that happen to be the feature names.

Bây giờ chúng ta hãy sắp xếp các giá trị này bằng phương thức & nbsp; ____ 23 & nbsp; của loạt gấu trúc.

sorted_pairs = corr_pairs.sort_values(kind="quicksort")
print(sorted_pairs)

Đầu ra: Chúng ta có thể thấy mỗi giá trị được lặp lại hai lần trong đầu ra được sắp xếp. Điều này là do ma trận tương quan của chúng tôi là một ma trận đối xứng và mỗi cặp tính năng xảy ra hai lần trong đó.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

We can see each value is repeated twice in the sorted output. This is because our correlation matrix was a symmetric matrix, and each pair of features occurred twice in it.

Tuy nhiên, bây giờ chúng tôi có các giá trị hệ số tương quan được sắp xếp của tất cả các cặp tính năng và có thể đưa ra quyết định phù hợp.

Chọn các cặp tương quan tiêu cực

Chúng tôi có thể muốn chọn các cặp tính năng có một phạm vi giá trị cụ thể của hệ số tương quan. Hãy để xem cách chúng ta có thể chọn các cặp có mối tương quan tiêu cực từ các cặp được sắp xếp mà chúng ta đã tạo trong phần trước.
Let’s see how we can choose pairs with a negative correlation from the sorted pairs we generated in the previous section.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
0

Output:

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Chọn các cặp tương quan mạnh (lớn hơn 0,5)

Hãy để chúng tôi sử dụng cùng một cách tiếp cận để chọn các tính năng liên quan mạnh mẽ. Đó là, chúng tôi sẽ cố gắng lọc các cặp tính năng có giá trị hệ số tương quan lớn hơn 0,5 hoặc nhỏ hơn -0,5.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
1

Output:

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Chuyển đổi ma trận hiệp phương sai thành ma trận tương quan

Chúng tôi đã thấy mối quan hệ giữa hiệp phương sai và mối tương quan giữa một cặp biến trong phần giới thiệu của blog này. Hãy cho chúng tôi hiểu làm thế nào chúng ta có thể tính toán ma trận hiệp phương sai của một dữ liệu nhất định trong Python và sau đó chuyển đổi nó thành một ma trận tương quan. Chúng tôi sẽ so sánh nó với ma trận tương quan mà chúng tôi đã tạo bằng cách sử dụng cuộc gọi phương thức trực tiếp.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Let us understand how we can compute the covariance matrix of a given data in Python and then convert it into a correlation matrix. We’ll compare it with the correlation matrix we had generated using a direct method call.

Trước hết, Pandas không cung cấp một phương pháp để tính toán hiệp phương sai giữa tất cả các cặp biến, vì vậy chúng tôi sẽ sử dụng phương thức Numpy tựa & nbsp; ____ 24 & nbsp;

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
2

Đầu ra: Chúng tôi đã vượt qua chuyển đổi của ma trận vì phương thức mong đợi một ma trận trong đó mỗi tính năng được biểu diễn bằng một hàng chứ không phải là một cột.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

We’re passing the transpose of the matrix because the method expects a matrix in which each of the features is represented by a row rather than a column.

Vì vậy, chúng tôi đã nhận được tử số của chúng tôi đúng. Bây giờ chúng ta cần tính toán một ma trận 6 × 6 trong đó giá trị tại I, J là sản phẩm của độ lệch chuẩn của các tính năng tại các vị trí I và J.
Now we need to compute a 6×6 matrix in which the value at i, j is the product of standard deviations of features at positions i and j.

Sau đó, chúng tôi sẽ chia ma trận hiệp phương sai cho ma trận độ lệch chuẩn này để tính toán ma trận tương quan.

Trước tiên chúng ta hãy xây dựng ma trận độ lệch chuẩn.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
3

Đầu ra: Bây giờ chúng ta có ma trận hiệp phương sai của hình dạng (6,6) cho 6 tính năng và sản phẩm theo cặp của ma trận tính năng của hình dạng (6,6), chúng ta có thể chia hai tính năng và xem liệu chúng ta có nhận được tương quan kết quả mong muốn Ma trận.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

Now that we have the covariance matrix of shape (6,6) for the 6 features, and the pairwise product of features matrix of shape (6,6), we can divide the two and see if we get the desired resultant correlation matrix.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
4

Chúng tôi đã lưu trữ ma trận tương quan mới (có nguồn gốc từ ma trận hiệp phương sai) trong biến & nbsp; ________ 25.

Chúng ta hãy kiểm tra xem chúng ta có hiểu đúng hay không bằng cách vẽ ma trận tương quan và kết hợp nó với phương pháp trước đó được tạo trực tiếp bằng phương pháp Pandas & nbsp; ________ 18.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
5

Đầu ra: Chúng ta có thể so sánh hai ma trận và nhận thấy rằng chúng giống hệt nhau.

Hướng dẫn how do you sort a correlation matrix in python? - làm thế nào để bạn sắp xếp một ma trận tương quan trong python?

We can compare the two matrices and notice that they are identical.

Xuất ma trận tương quan sang hình ảnh

Vẽ đồ thị ma trận tương quan trong tập lệnh Python là không đủ. Chúng tôi có thể muốn lưu nó để sử dụng sau. Chúng ta có thể lưu sơ đồ được tạo dưới dạng tệp hình ảnh trên đĩa bằng phương thức & nbsp; ____ 27 & nbsp;
We can save the generated plot as an image file on disk using the 

# Returns correlation matrix
def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    return xFiltered

# flattens correlation matrix with bounds
def corrFilterFlattened(x: pd.DataFrame, bound: float):
    xFiltered = corrFilter(x, bound)
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

# Returns correlation for a variable from flattened correlation matrix
def filterForLabels(df: pd.DataFrame, label):  
    try:
        sideLeft = df[label,]
    except:
        sideLeft = pd.DataFrame()

    try:
        sideRight = df[:,label]
    except:
        sideRight = pd.DataFrame()

    if sideLeft.empty and sideRight.empty:
        return pd.DataFrame()
    elif sideLeft.empty:        
        concat = sideRight.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    elif sideRight.empty:
        concat = sideLeft.to_frame()
        concat.rename(columns={0:'Corr'},inplace=True)
        return concat
    else:
        concat = pd.concat([sideLeft,sideRight], axis=1)
        concat["Corr"] = concat[0].fillna(0) + concat[1].fillna(0)
        concat.drop(columns=[0,1], inplace=True)
        return concat
7 method.

def corrFilter(x: pd.DataFrame, bound: float):
    xCorr = x.corr()
    xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
    xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
    return xFlattened

corrFilter(df, .7)
6

Sau khi bạn chạy mã này, bạn có thể thấy một tệp hình ảnh có tên ‘bú vắt_cancer_correlation.png, trong cùng một thư mục làm việc.

Sự kết luận

Trong hướng dẫn này, chúng tôi đã học được ma trận tương quan là gì và làm thế nào để tạo chúng trong Python. Chúng tôi bắt đầu bằng cách tập trung vào khái niệm ma trận tương quan và các hệ số tương quan.

Sau đó, chúng tôi đã tạo ma trận tương quan như một mảng numpy và sau đó là một khung dữ liệu gấu trúc. Tiếp theo, chúng tôi đã học cách vẽ âm mưu ma trận tương quan và thao tác với các nhãn cốt truyện, tiêu đề, v.v. Chúng tôi cũng đã thảo luận về các thuộc tính khác nhau được sử dụng để diễn giải ma trận tương quan đầu ra.

Chúng tôi cũng đã thấy làm thế nào chúng tôi có thể thực hiện các hoạt động nhất định trên ma trận tương quan, chẳng hạn như sắp xếp ma trận, tìm các cặp tương quan tiêu cực, tìm các cặp tương quan mạnh, v.v.

Sau đó, chúng tôi đã thảo luận về cách chúng tôi có thể sử dụng ma trận hiệp phương sai của dữ liệu và tạo ma trận tương quan từ nó bằng cách chia nó với sản phẩm của độ lệch chuẩn của các tính năng riêng lẻ. Cuối cùng, chúng tôi đã thấy cách chúng tôi có thể lưu âm mưu được tạo dưới dạng tệp hình ảnh.
Finally, we saw how we could save the generated plot as an image file.

MOKHTAR là người sáng lập của likeGeeks.com. Anh ta làm việc như một Quản trị viên hệ thống Linux & NBSP; kể từ năm 2010. Anh ta chịu trách nhiệm duy trì, bảo vệ và xử lý sự cố các máy chủ Linux cho nhiều khách hàng trên thế giới. Anh ấy thích viết kịch bản Shell và Python để tự động hóa tác phẩm của mình.

Làm thế nào để bạn đọc một ma trận tương quan?

Làm thế nào để đọc một ma trận tương quan..
-1 chỉ ra một mối tương quan tuyến tính hoàn toàn âm giữa hai biến ..
0 chỉ ra không có mối tương quan tuyến tính giữa hai biến ..
1 cho thấy mối tương quan tuyến tính hoàn toàn dương giữa hai biến ..

Làm thế nào để bạn giải thích mối tương quan trong Python?

Một giá trị dương cho R cho thấy một liên kết tích cực và giá trị âm cho R cho thấy mối liên hệ tiêu cực.R gần hơn là 1 gần các điểm dữ liệu rơi xuống một đường thẳng, do đó, liên kết tuyến tính mạnh hơn.R gần hơn là 0, làm cho hiệp hội tuyến tính yếu hơn.. The closer r is to 1 the closer the data points fall to a straight line, thus, the linear association is stronger. The closer r is to 0, making the linear association weaker.

Làm thế nào để bạn có được các tính năng tương quan hàng đầu trong Python?

Bước 1 - Nhập thư viện.Nhập Pandas dưới dạng nhập khẩu PD Numpy dưới dạng NP từ các bộ dữ liệu nhập Sklearn.....
Bước 2 - Thiết lập dữ liệu.....
Bước 3 - Tạo ma trận tương quan và chọn ma trận trigular trên.....
Bước 5 - Thả cột với tương quan cao.....
Bước 6 - Phân tích đầu ra ..