知行编程网知行编程网  2022-04-23 20:00 知行编程网 隐藏边栏 |   抢沙发  12 
文章评分 0 次,平均分 0.0

Python可视化神器Yellowbrick使用


作者:沂水寒城,CSDN博客专家,个人研究方向:机器学习、深度学习、NLP、CV

Blog: http://yishuihancheng.blog.csdn.net

在机器学习、数据挖掘领域里面,接触到数据处理分析的人来说,数据探索是非常重要的一部分工作,而数据可视化会成为数据分析工程师完成数据探索工作的有力工具。本文主要是介绍一款我日常使用较多的可视化利器Yellowbrick,这是一款基于sklearn+matplotlib模块构建的更加高级的可视化工具,能够更加方便地完成很多数据探索、分词与展示工作。

学习使用一个模块最好的方式就是学习它提供的API,下面先给出来几个比较好的参考地址:

1)官方文档地址(英文)


Python可视化神器Yellowbrick使用

2)官方文档地址(中文)


Python可视化神器Yellowbrick使用

Yellowbrick是由一套被称为"Visualizers"组成的可视化诊断工具组成的集合,其由Scikit-Learn API延伸而来,对模型选择过程其指导作用。总之,Yellowbrick结合了Scikit-Learn和Matplotlib并且最好得传承了Scikit-Learn文档,对你的模型进行可视化!

想要了解Yellowbrick就必须先了解Visualizers,它是estimators从数据中学习得的对象,其主要任务是产生可对模型选择过程有更深入了解的视图。从Scikit-Learn来看,当可视化数据空间或者封装一个模型estimator时,其和转换器(transformers)相似,就像"ModelCV" (比如RidgeCV,LassoCV)的工作原理一样。Yellowbrick的主要目标是创建一个和Scikit-Learn类似的有意义的API。

Yellowbrick中最受欢迎的visualizers包括:

Python可视化神器Yellowbrick使用

如此强大的可视化工具,安装方式却很简单,使用下面的命令:

如果需要升级最新版本的则可以使用下面的命令:

安装完成后,我们就可以进行使用了。该模块提供了几个常用的可用于实验使用的数据集,如下所示:

Python可视化神器Yellowbrick使用

进入到对应数据集文件夹下面,都会有三个文件,对于bikeshare如下:

Python可视化神器Yellowbrick使用

其中:bikeshare.csv为数据集文件,如:

Python可视化神器Yellowbrick使用

Meta.json为字段元信息文件,如:

Python可视化神器Yellowbrick使用

README.md为介绍说明文件,如:

Python可视化神器Yellowbrick使用

基于共享单车数据集,简单的数据分析工作实现如下:

bikeshare_Rank2D.png特征相关性计算

Python可视化神器Yellowbrick使用

bikeshare_LinearRegression_ResidualsPlot.png使用线性回归模型预测

Python可视化神器Yellowbrick使用

bikeshare_RidgeCV_AlphaSelection.png使用AlphaSelection特征选择

Python可视化神器Yellowbrick使用

bikeshare_Ridge_PredictionError.png绘制预测错误图

Python可视化神器Yellowbrick使用

除了可以直接对数据进行分析展示之外,Yellowbrick同样可以对文本数据进行处理分析,下面我们基于爱好数据集进行简单的使用说明,具体代码实现如下所示:

text_hobbies_FreqDistVisualizer.png

Python可视化神器Yellowbrick使用

text_hobbies_FreqDistVisualizer_stop_words.png

Python可视化神器Yellowbrick使用

text_hobbies_cooking_FreqDistVisualizer.png

Python可视化神器Yellowbrick使用

text_hobbies_gaming_FreqDistVisualizer.png

Python可视化神器Yellowbrick使用

text_hobbies_TSNEVisualizer.png

Python可视化神器Yellowbrick使用

text_hobbies_TSNEVisualizer_nocolor.png

Python可视化神器Yellowbrick使用

text_hobbies_cluster_TSNEVisualizer.png

Python可视化神器Yellowbrick使用

这里简单介绍一些TSNE,t-distributed Stochastic Neighbor Embedding(t-SNE)是目前来说效果最好的数据降维与可视化方法,但是它的缺点也很明显,比如:占内存大,运行时间长。但是,当我们想要对高维数据进行分类,又不清楚这个数据集有没有很好的可分性(即同类之间间隔小,异类之间间隔大),可以通过 t-SNE 投影到 2 维或者3维的空间中观察一下。如果在低维空间中具有可分性,则数据是可分的;如果在高维空间中不具有可分性,可能是数据不可分,也可能仅仅是因为不能投影到低维空间。

TSNE将数据点之间的相似度转换为概率。原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“Student t 分布”表示。虽然 Isomap,LLE 和 variants等数据降维和可视化方法,更适合展开单个连续的低维的manifold。但如果要准确的可视化样本间的相似度关系,t-SNE表现更好。因为t-SNE主要是关注数据的局部结构。

Yellowbrick对数据的可视化有更加高级的封装和实现,对于新手和有一定经验的分析人员来说都是非常友好的,这里强烈推荐入门这款神器,一篇文章的内容有限不足以讲清楚整个模块,感兴趣的话可以阅读我的系列文章。

Python可视化神器Yellowbrick使用

很高兴在自己温习回顾知识的同时能写下点分享的东西出来,如果说您觉得我的内容还可以或者是对您有所启发、帮助,还希望得到您的鼓励支持!

<pre style="letter-spacing: 0.544px;"><section style="margin-right: 8px;margin-left: 8px;white-space: normal;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-align: center;widows: 1;line-height: 1.75em;"><strong><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong>完<strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong></span></strong></span></strong></section><section style="white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-align: center;widows: 1;color: rgb(255, 97, 149);"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="letter-spacing: 0.544px;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><p style="margin-right: 8px;margin-bottom: 15px;margin-left: 8px;padding-right: 0em;padding-left: 0em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 25.5938px;letter-spacing: 3px;"><span style="color: rgb(0, 0, 0);"><strong><span style="font-size: 16px;font-family: 微软雅黑;caret-color: red;">为您推荐</span></strong></span></p><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;">微软黑科技:用玻璃片存储海量数据,千年不坏!<br  /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;">作为 IT 行业的过来人,你有什么话想对后辈说的?<br  /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;">程序员真的是太太太太太太太太难了!<br  /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;">深度学习必懂的13种概率分布<br  /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;">【微软】AI-神经网络基本原理简明教程</section></section></section></section></section></section></section></section></section>

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享