在 Pandas 中使用散点矩阵配对图
检查数据集属性之间的共线性是数据预处理中最重要的步骤之一。了解特征之间相关性的一个好方法是为每对属性创建散点图。为了这个目的,Pandas 有一个函数scatter_matrix() 。 scatter_matrix()可用于在所有数字特征对之间轻松生成一组散点图。它为每个数字特征与其他所有数字特征创建一个图,并为每个数字特征创建一个直方图。
Syntax : pandas.plotting.scatter_matrix(frame)
Parameters :
frame : the dataframe to be plotted.
在下面的示例中,我们将在此数据集上创建散点图。
该数据集包含有关加利福尼亚地区房屋的价格和其他统计数据。
import pandas as pd
# loading the dataset
data = pd.read_csv('housing.csv')
# inspecting the data
data.info()
输出 :
RangeIndex: 20640 entries, 0 to 20639
Data columns (total 10 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 longitude 20640 non-null float64
1 latitude 20640 non-null float64
2 housing_median_age 20640 non-null float64
3 total_rooms 20640 non-null float64
4 total_bedrooms 20433 non-null float64
5 population 20640 non-null float64
6 households 20640 non-null float64
7 median_income 20640 non-null float64
8 median_house_value 20640 non-null float64
9 ocean_proximity 20640 non-null object
dtypes: float64(9), object(1)
memory usage: 1.6+ MB
创建散点图
让我们选择三个数字列; median_house_value , Housing_median_age和median_income ,用于绘图。请注意,Pandas 绘图依赖于 Matplotlib,因此需要先导入。
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
# selecting three numerical features
features = ['median_house_value', 'housing_median_age',
'median_income']
# plotting the scatter matrix
# with the features
scatter_matrix(data[features])
plt.show()
输出 :
矩阵中的每个散点图都有助于我们了解相应属性对之间的相关性。正如我们所见, median_income和median_house_value具有很强的相关性。主对角线包含每个属性的直方图。