一行代码就可以搞定自动化可视化?



原文:AutoViz: A New Tool for Automated Visualization
链接:https://danrothdatascience.github.io/datascience/autoviz.html
作者:Dan Roth
        数据科学家经常要负责通过海量数据存储来提供可行的见解。然后分析这些见解,以识别与商业智能甚至人类行为有关的模式。但是,采用所有类型的优化和聪明的算法来构造数据查询和机器学习管道可能是一回事。能够将艰苦的数据收集和建模结果传达给没有共享数据处理知识的同事,完全是另一回事。数据可视化正是在这里节省时间。
        斯科特·贝里纳托(Scott Berinato)在他的《良好的图表》一书中宣称:“良好的可视化可以比任何其他形式的交流更有效地交流信息和思想的本质和潜在影响” 。我们许多人都熟悉这样的说法:“一张图片值得一千个字“。同样,在数据科学中,有效的可视化提供了强有力的季节性模式,与成功的营销活动有关的尖锐趋势或需要解决的突出异常点的惊人证据,这非常重要。小数据集的可视化既简单又非常有益,但是对于包含数百个甚至数千个变量的大型数据集来说,要决定从数据集中突出显示最佳洞察力几乎是不可能的,此外,数据科学家必须经常使用非标准化的可视化库需要大量的编码才能获得具有适当效果的视觉效果。幸运的是,还有一种替代方法可以使用这种蛮力方法来创建视觉效果。就是我最近了解到的一个名为 AutoViz 的库(自动可视化)。
AutoViz:简介
        AutoViz 解决了执行数据可视化工作时可能出现的许多上述挑战。可以通过输入 Pandas DataFrame 或要导入的原始 csv 文件,使用一行代码来调用该工具。        如果观察的数量很多,则 AutoViz 将随机抽取样本;同样,如果变量数量很大,则 AutoViz 可以找到最重要的特征,并仅使用那些自动选择的特征来绘制有影响力的可视化效果。用户可以通过简单地将参数传递给 AutoViz 来设置样本行数和最大可视化特征数。AutoViz 能够适应许多不同的数据上下文,例如回归,分类甚至时间序列数据。它还可以提供令人难以置信的快速输出。
AutoViz 可以通过 4 个简单步骤实现:
使用pip install autoviz进行安装
导入为from autoviz.AutoViz_Class import AutoViz_Class
实例化一个类 AV = AutoViz_Class()
使用我们的数据集在以下行中运行实验:
dft = AV.AutoViz("filename", sep="sep",depVar="target", dfte="pandasDF",header=0, verbose=2, lowess=False,chart_format="svg",max_rows_analyzed=1500, max_cols_analyzed=30)
AutoViz 的优点
        使用 AutoViz 进行可视化有很多优点。该库非常易于解释,可以使用 verbose = 1 或 2 标志将其设置为高度调试的模式。反复使用 XGBoost 模型,通过每次使用一组随机特征来确定最重要的最一致特征集;然后,最突出的选定特征可以用来指导将来的绘图和可视化。听起来可能需要一些时间,但实际上,它很快完成了。为了有效地做到这一点,AutoViz 将所选变量分类为类别,数字,布尔值,NLP 文本等,以便了解如何最好地绘制它们。最后,使用内置的启发式方法,该工具将返回被认为具有最大影响力的视觉效果。AutoViz 也非常系统化:它使用所有具有不同图表类型的选定变量,以通过让图表自己说话来提供最佳见解。主观领域的知识通常甚至可以使经验丰富的数据科学家偏向于仅选择少数图表来突出显示来自数据集的见解。AutoViz 对特征和图形的客观选择可以使数据团队使用系统的方法论朝着最佳方法发展,并且从一开始就可以大大提高团队的生产力。
        实际上,AutoViz 是什么样的?当然,了解可视化库的唯一方法是观察其某些图。
数据集:在线购物者的意图
        让我们从Kaggle[1]获取在线购物者的意图数据集。数据包含一年中对不同在线购物者的大约 12,000 次观察。这是一个分类任务;我们正在尝试根据功能集预测在线购物者是否会实际购买商品或仅仅是随便逛逛。AutoViz 能够确认所有 17 个特征都具有用于预测目标变量的有用信息。
        以下所有图表均选自 AutoViz 提供的 100 个图表。首先,有一个条形图代表组成我们的目标类别的观察值的百分比。

        显而易见,我们正在处理数据中的类不平衡问题,因为所需的类值(True)仅占总数据集的 15%。接下来,我们将看到各个变量可能如何需要进行“处理”或“转换”,因为 AutoViz 提供了每个数值变量的 KDE 图。

        从上面我们可以看到,所有四个变量都是右偏的,可能需要进行“对数转换”才能在线性模型中使用。当为以后的问题建模而建立数据管道时,这类图表将被证明非常有用。
        可视化可以为不同变量之间的相互作用提供非常有力的证据。从下面的图表中可以看出,跳出率和退出率处于较高水平可以很好地指示收入流失。它们表明在这些交易中将没有收入。快速了解,如果您知道他们所说的如何预测未来!

        通过检查标准化的在线购物购买直方图以及它们到特殊日子或假日(如情人节或圣诞节)的距离,我们可以更深入地了解电子商务的购买时机。

        活动的最大高峰发生在特殊的一天之前大约一周;尽管我们的分类不平衡,但仍有大约 50%的访客在此时间段内购买商品。对于企业可能希望进行促销或定位潜在客户的情况,这是至关重要的提示。
数据集:Goodreads API
        AutoViz 还能够提供使用 Goodreads API 抓取的大约 12,000 本书的数据集的信息可视化。数据集包含整个书籍的元数据,目标变量是书籍的平均评分,可以转化为回归分析。这次,AutoViz 从数据集中删除了一些变量,例如 ISBN 和书名,这些变量除了标识之外没有提供太多的预测信息。有趣的是,它删除了作者功能,这通常是我们通常认为与书的成功相关的功能。但是,由于这是此数据集中的分类字符串变量,因此可能没有足够的证据来使用各种各样的作者姓名作为特征。
        AutoViz 有一个相关的热图输出,表明除了变量的数量和书面评论的数量之间存在明显的关系以外,大多数变量都没有高度相关。有趣的是,页面数与评论得分之间存在正相关。

通过分析以下散点图,可以提取关于书页数的更多信息:

        页数更多的书籍的平均评分通常为 4 以上。但是,值得注意的是,较短长度的书(100-250 页)能够获得最高 5 分(满分 5 分)的平均评论分数。但是,这可能代表了离群值,因此明智的做法是进一步检查这些高评价的书。确保他们的评论分数与其他条目相同。总体而言,这给人的印象是出版商可能希望将 1250-1500 页设置为书本的目标页数,以使其表现良好。
        可以将这些信息与以下知识结合起来:在 Goodreads 上,一本书的页数通常以右偏分布,因为许多书大约有 400-500 页。

        然后,我们可以使用 AutoViz 输出的小提琴图,将书中页数的分布与集合中存在的其他变量的分布进行比较。

        平均图书评论数也呈正态分布,尽管偏左。负面评级可能是分布中的重要异常值。还可以观察到,一本书的评分数量似乎难以置信的右偏;少数书籍可能会收到总评分的过高金额。
数据集:AirBnB 列表数据
        然后,AutoViz 能够熟练地可视化 AirBnB 列表数据,该数据由位于西班牙马德里的 20,000 个列表的数据集提供。该数据库是由Kaggle[2]托管的 AirBnB 数据的关系集合的一部分, 并且包含诸如每个清单的床和浴室数量,评论和日历预订之类的属性。在此实验中,目标变量是 AirBnB 列表的评论评分。每个条目都有许多功能,乍一看令人生畏。值得庆幸的是,AutoViz 找到了许多低信息变量,可以将它们排除在外,以减少数据差异。其中一些排除的功能令人惊讶,例如价格,平方英尺或列表附近。
        自动生成的图对于不同列表的某些方面非常有用。例如,得知绝大多数 AirBnB 主机在被联系后的一小时内做出响应,可能会令人惊讶。

        主人通常会提供其全部居住空间作为房屋清单的一部分,尽管大约一半的时间房屋清单可能只提供一个房间。但是,一旦事实证明马德里的大量清单是用于公寓而不是房屋的事实,这便是有道理的。


        我们的目标变量的预测因素如何?对 AutoViz 生成的热图的分析表明,与列表的评论评分最相关的功能是每月收到的评论数。AirBnB 的许多评论都可能是正面的,因此这可能意味着 AirBnB 成员最好是接待尽可能多的客人并激励他们留下评论,因为这样可以最有效地随着时间的推移提高列表的评论评分。

        列表评论分数具有一个负相关的功能,即 AirBnB 主机维护的列表数量。当列表受到房东的更多个性化关注时,而不是作为不同住宿分配的一部分时,列表可能会表现更好。
结论
        尽管这些只是 AutoViz 生成的图的样本,但不难看出自动化可视化有多么有用。此刻,该库能够生成高度信息化的图,并为数据科学家的建模或分析管道提供了许多潜在的扩展途径。AutoViz 旨在集成到系统的迭代过程中。可以使用 AutoViz 有效地启动探索性数据分析(EDA)。可以根据工具的分析选择特征,然后可以重复处理数据以进行自动可视化。一旦产生了强大的可视化效果,数据科学家现在就可以跳入建模或通过充分了解的分析交流数据。令人惊讶的是,鉴于自动可视化选项作为一种客观实用的工具有很多可能的用途,因此它的稀疏性令人惊讶,但是幸运的是,AutoViz 发挥了巨大作用。现在让我们进行一些可视化!
        您可以访问 包含这些实验和其他实验的jupyter 笔记本[3]。用于 AutoViz 的 Github 存储库位于 此处[4],而 PyPi 页面位于 此处[5]。非常感谢 Ram Seshadri 对 AutoViz 实验的支持和指导。
参考资料
[1]
https://www.kaggle.com/roshansharma/online-shoppers-intention[2]
https://www.kaggle.com/rusiano/madrid-airbnb-data[3]
https://github.com/DanRothDataScience/autoviz_test/blob/master/AutoViz_test.ipynb[4]
https://github.com/AutoViML/AutoViz[5]
https://pypi.org/project/autoviz/
到顶部