平行坐标可视化

这篇具有很好参考价值的文章主要介绍了平行坐标可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  参考自《数据挖掘概念与技术》。

  对于有$m$个特征,$n$个样本的数据,平行坐标可视化图中,横轴均匀列出$m$个特征,每个特征生成一个纵轴,其中每个样本就表示为穿越这些纵轴的折线。实现代码如下:

import numpy as np
import matplotlib.pyplot as plt

def parallel_coordinates(data, line_c='black', axis_alpha = 0.5, line_alpha = 0.05):
    n, m = data.shape
    mi, ma = np.min(data, 0, keepdims=True), np.max(data, 0, keepdims=True)
    ma += (ma - mi == 0) # 防止零除
    data = (data - mi) / (ma - mi)
    # 创建一个 Figure 对象和一个 Axes 对象
    fig, ax = plt.subplots()
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.spines['left'].set_visible(False)
    ax.spines["bottom"].set_alpha(axis_alpha)
    ax.tick_params(axis='y', length=0, labelleft=False)
    ax.tick_params(axis='x', length=2, colors=(0, 0, 0, axis_alpha))
    ax.set_xticks(np.arange(m), np.arange(m), alpha = axis_alpha)
    ax.set_xlabel('Features')
    ax.set_ylabel('Values')
    # 画折线
    x = np.arange(m)
    for d in data:
        ax.plot(x, d, c=line_c, alpha=line_alpha)
    # 画坐标轴
    for i in range(m):
        ax1 = ax.twinx()
        ax1.spines['top'].set_visible(False)
        ax1.spines['left'].set_visible(False)
        ax1.spines['bottom'].set_visible(False)
        ax1.spines["right"].set_position(("data", i))
        ax1.spines["right"].set_alpha(axis_alpha)
        ax1.tick_params(axis='y', length=2, colors=(0, 0, 0, axis_alpha))
        ax1.set_ylim(ax.get_ylim())
        new_ticks = ['%.2f'%i for i in np.linspace(mi[0, i], ma[0, i], 5)]
        ax1.set_yticks(np.linspace(0, 1, 5), new_ticks, alpha = axis_alpha)
    plt.show()
# samp.shape = [n, m]
parallel_coordinates(samp)

  下图展示了45个标准异常检测数据集的1000个随机抽样(不重复)的前5个特征的可视化结果:

平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化
平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化 平行坐标可视化

  可视化结果把所有$n\times m$个数据都表示在一张图中,比较全面,但对横坐标的特征顺序敏感,不相邻特征之间的模式人眼不容易观察。如果要观察某两个特征之间的关系,可以使它们的位置相邻。文章来源地址https://www.toymoban.com/news/detail-414219.html

到了这里,关于平行坐标可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包