对数据进行理解的最快最有效的方式是:数据的可视化。
单一图表
直方图密度图箱线图直方图
通过直方图可以非常直观地看出每个属性的分布状况:高斯分布,指数分布还是偏态分布。
from pandas import read_csvimport matplotlib.pyplot as pltfilename = 'data/pima_data.csv'# names = ['Number of times pregnant', #'Plasma glucose concentration a 2 hours in an oral glucose tolerance test', #'Diastolic blood pressure (mm Hg)',#'Triceps skin fold thickness (mm)',#'2-Hour serum insulin (mu U/ml)',#'Body mass index (weight in kg/(height in m)^2)',#'Diabetes pedigree function',#'Age (years)',#'Class variable (0 or 1)'# ]names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']data = read_csv(filename, names=names) # 手动指定头部
# 直方图data.hist()plt.show()
密度图
也是用于显示数据分布的图表,类似于对直方图进行抽象,用平滑的曲线来描述数据的分布。
data.plot(kind='density', subplots=True, layout=(3,3), sharex=False)plt.show()
箱线图
用于显示数据分布, 中位线 + 上下四分数线 + 上下边缘线。
data.plot(kind='box', subplots=True, layout=(3,3), sharex=False, sharey=False)plt.show()
多重图表
主要是两种图表:
相关矩阵图散点矩阵图
相关矩阵图
用于展示两个不同属性相互影响的程度。把所有的属性两两影响的关系展示出来的图就是相关矩阵图。
散点矩阵图
两组数据构成多个坐标点,两两特征之间的数据散点图组合成一个散点矩阵图。
# 相关矩阵图from pandas import read_csvimport matplotlib.pyplot as pltimport numpy as npfilename = 'data/pima_data.csv'names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']data = read_csv(filename, names=names) correlations = data.corr()fig = plt.figure()ax = fig.add_subplot(111)cax = ax.matshow(correlations, vmin=-1, vmax=1)fig.colorbar(cax)ticks = np.arange(0,9,1)ax.set_xticks(ticks)ax.set_yticks(ticks)ax.set_xticklabels(names)ax.set_yticklabels(names)plt.show()
# 散点矩阵图from pandas.plotting import scatter_matrixscatter_matrix(data)plt.show()
这个使用是非常简单的,三行代码即可。
总结
结合前面的7种审查数据的武器 + 这里讲到的数据可视化的方法,现在拿到一个CSV数据集,我们就可以迅速对数据集进行审查,然后加深对数据的理解,这个过程中解题的思路也会慢慢清晰。
END.
参考:
《机器学习Python实践》
如果觉得《【机器学习】Pima数据集的可视化》对你有帮助,请点赞、收藏,并留下你的观点哦!