Python 数据可视化分析(二)

Python 数据可视化分析(二)


多标量可视化

在单张图像中查看两个以上变量的联系

  • 相关矩阵:可揭示数据集中的数值变量的相关性。
  • 使用corr()放大计算出特征间的相关性,然后将所得到的的相关矩阵传给seaborn的heatmap()方法,然后根据提供的值渲染出一个基于色彩编码的矩阵
    # 删除非数值变量
    numerical =list(set(df.columns) - set(['字段名'])) # 字段名可以使多个,用逗号隔开
    # 计算和绘图
    corr_matrix = df[numerical].corr()
    sns.heatmap(corr_matrix)

Python 数据可视化分析(二)_第1张图片

  • 散点图:将两个数值变量的值显示为二维空间中的笛卡尔坐标,通过matplotlib库的scatter()方法创建
    plt.scatter(df['字段名1'], df['字段名2'])

Python 数据可视化分析(二)_第2张图片

  • 使用seaborn库的jointplot()方法在在绘制散点图的同时会绘制两张直方图
    sns.jointplot(x='字段名1', y='字段名2', data=df , kind='scatter')

Python 数据可视化分析(二)_第3张图片

  • jointplot() 方法还可以绘制平滑过的散点直方图。
    sns.jointplot('字段1', '字段2', data=df, kind="kde", color="g")

Python 数据可视化分析(二)_第4张图片

  • 可以尝试从数值和类别特征的相互作用中得到预测 Churn 的新信息。使用lmplot()方法的 hue 参数来制定感兴趣的类别特征
    sns.lmplot('Total day minutes', 'Total night minutes', data=df, hue='Churn', fit_reg=False)

Python 数据可视化分析(二)_第5张图片

  • 如果要一次性分析两个类别维度下的数量变量时,可以用seaborn库的catplot()函数。

交叉表

除了使用图形进行类别分析之外,还可以使用统计学的传统工具:交叉表(cross tabulation),即使用表格形式表示多个类别变量的频率分布。通过它可以查看某一列或某一行以了解某个变量在另一变量的作用下的分布情况。

    # 可以查看df1在df2影响下的分布情况
    pd.crosstab(df1,df2).T

Python 数据可视化分析(二)_第6张图片

  • 通过groupby()方法计算每种情况的数值,并进行由高到低的排列
    df.groupby() # 对目标参数进行分组
    np.mean # 求均值
    agg() # 对上述数据进行操作
    sort() # 排序

全局数据集可视化

  • 降维:把数据集的多个特征当成多个维度,如果维度过高,处理这样的数据集相当难,为了从整体上查看一个数据集,需要在不损失很多数据信息的前提下,降低用于可视化的维度。这一任务被称为降维降维是一个无监督学习(unsupervised learning)问题,因为它需要在不借助任何监督输入(如标签)的前提下,从数据自身得到新的低维特征。
  • t-SNE基本思路很简单:为高维特征空间在二维平面(或三维平面)上寻找一个投影,使得在原本的 n 维空间中相距很远的数据点在二维平面上同样相距较远,而原本相近的点在平面上仍然相近。
  • 创建t-SNE需要的准备
    from sklearn.manifold import TSNE
    from sklearn.preprocessing import StandardScaler

Tips:

    • TSNE:对将具有多种特征的数据集在保证信息不缺失的情况下,进行降维,方便对数据及进行分析。
    • StandardScaler库:针对每一个特征维度,去均值和方差归一化。
  • 使用 StandardScaler() 方法来完成归一化数据,即从每个变量中减去均值,然后除以标准差。
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
  • 构建 t-SNE 。
    # 创建TSNE工具
    tsne = TSNE(random_state=17)
    # 降低纬度
    tsne_repr = tsne.fit_transform(X_scaled)
  • 将图形可视化并通过颜色区分加以分析
    plt.scatter(tsne_repr[:, 0], tsne_repr[:, 1],c=df['Churn'].map({
     False: 'blue', True: 'orange'}), alpha=.5)

Python 数据可视化分析(二)_第7张图片

实验总结

  • 了解了Pandas、Matplotlib和seaborn库的一些常用可视化方法,并利用可视化分析和t-SNE对数据进行了处理
  • 可视化是一个相对快捷的从数据中挖掘信息的手段

你可能感兴趣的:(人工智能,python,数据挖掘,机器学习,python)