Python可视化神器Yellowbrick使用

3D打印机之Marlin固件配置 一、Marlin固件必要配置 打开Configuration.h文件,使用VS code的搜索功能来修改下面的参数。 配置波特率 #define BAUDRATE 250000 配置串口波特率,一般不修改。上位机的波特率要和这个一致才能正常通讯。 2. 配置主板类型 第 134 行 #define MOTHERBOARD BOARD_MKS_GEN_L 找到 boards.h 这个文件打开,就可以看到支持的主板类型。3d打印机主控板类型非常多,每个板子硬件连接都可能不同,所以这个参数必须要跟你自己的板子 阅读详情

♚

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

Blog: http://yishuihancheng.blog.youkuaiyun.com

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

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

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

https://www.scikit-yb.org/en/latest/

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

http://www.scikit-yb.org/zh/latest/

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包括:

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

pip install yellowbrick

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

pip install –u yellowbrick

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

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

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

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

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

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

def testFunc5(savepath='Results/bikeshare_Rank2D.png'):
    '''
    共享单车数据集预测
    '''
    data=pd.read_csv('bikeshare/bikeshare.csv')
    X=data[["season", "month", "hour", "holiday", "weekday", "workingday",
            "weather", "temp", "feelslike", "humidity", "windspeed"
          ]]
    y=data["riders"]
    visualizer=Rank2D(algorithm="pearson")
    visualizer.fit_transform(X)
    visualizer.poof(outpath=savepath)


def testFunc6(savepath='Results/bikeshare_temperate_feelslike_relation.png'):
    '''
    进一步考察相关性
    '''
    data=pd.read_csv('bikeshare/bikeshare.csv')
    X=data[["season", "month", "hour", "holiday", "weekday", "workingday",
            "weather", "temp", "feelslike", "humidity", "windspeed"]]
    y=data["riders"]
    visualizer=JointPlotVisualizer(feature='temp', target='feelslike')
    visualizer.fit(X['temp'], X['feelslike'])
    visualizer.poof(outpath=savepath)


def testFunc7(savepath='Results/bikeshare_LinearRegression_ResidualsPlot.png'):
    '''
    基于共享单车数据使用线性回归模型预测
    '''
    data = pd.read_csv('bikeshare/bikeshare.csv')
    X=data[["season", "month", "hour", "holiday", "weekday", "workingday",
            "weather", "temp", "feelslike", "humidity", "windspeed"]]
    y=data["riders"]
    X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)
    visualizer=ResidualsPlot(LinearRegression())
    visualizer.fit(X_train, y_train)
    visualizer.score(X_test, y_test)
    visualizer.poof(outpath=savepath)


def testFunc8(savepath='Results/bikeshare_RidgeCV_AlphaSelection.png'):
    '''
    基于共享单车数据使用AlphaSelection
    '''
    data=pd.read_csv('bikeshare/bikeshare.csv')
    X=data[["season", "month", "hour", "holiday", "weekday", "workingday",
            "weather", "temp", "feelslike", "humidity", "windspeed"]]
    y=data["riders"]
    alphas=np.logspace(-10, 1, 200)
    visualizer=AlphaSelection(RidgeCV(alphas=alphas))
    visualizer.fit(X, y)
    visualizer.poof(outpath=savepath)


def testFunc9(savepath='Results/bikeshare_Ridge_PredictionError.png'):
    '''
    基于共享单车数据绘制预测错误图
    '''
    data=pd.read_csv('bikeshare/bikeshare.csv')
    X=data[["season", "month", "hour", "holiday", "weekday", "workingday",
            "weather", "temp", "feelslike", "humidity", "windspeed"]]
    y=data["riders"]
    X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)
    visualizer=PredictionError(Ridge(alpha=3.181))
    visualizer.fit(X_train, y_train)
    visualizer.score(X_test, y_test)
    visualizer.poof(outpath=savepath)

bikeshare_Rank2D.png特征相关性计算

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

bikeshare_RidgeCV_AlphaSelection.png使用AlphaSelection特征选择

bikeshare_Ridge_PredictionError.png绘制预测错误图

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

def hobbiesFreqDistVisualizer():
    '''
    文本可视化
    Token 频率分布:绘制语料库中令牌的频率
    t-SNE 语料库可视化:绘制更接近发现聚类的类似文档
    '''
    corpus=load_corpus("data/hobbies")
    vectorizer = CountVectorizer()
    docs       = vectorizer.fit_transform(corpus.data)
    features   = vectorizer.get_feature_names()
    visualizer = FreqDistVisualizer(features=features)
    visualizer.fit(docs)
    visualizer.poof(outpath='text_hobbies_FreqDistVisualizer.png')
    #去停用词
    vectorizer = CountVectorizer(stop_words='english')
    docs       = vectorizer.fit_transform(corpus.data)
    features   = vectorizer.get_feature_names()
    visualizer = FreqDistVisualizer(features=features)
    visualizer.fit(docs)
    visualizer.poof(outpath='text_hobbies_FreqDistVisualizer_stop_words.png')


def hobbiesFreqDistVisualizer2():
    '''
    探索 烹饪和游戏 两种爱好的频度分布
    (报错:没有label,应该为corpus.target)
    '''
    corpus=load_corpus("data/hobbies")
    #烹饪爱好频度分布统计图
    hobbies=defaultdict(list)
    for text,label in zip(corpus.data,corpus.target):
        hobbies[label].append(text)
    vectorizer = CountVectorizer(stop_words='english')
    docs       = vectorizer.fit_transform(text for text in hobbies['cooking'])
    features   = vectorizer.get_feature_names()
    visualizer = FreqDistVisualizer(features=features)
    visualizer.fit(docs)
    visualizer.poof(outpath='text_hobbies_cooking_FreqDistVisualizer.png')
    #游戏爱好频度分布统计图
    hobbies=defaultdict(list)
    for text,label in zip(corpus.data, corpus.target):
        hobbies[label].append(text)
    vectorizer = CountVectorizer(stop_words='english')
    docs       = vectorizer.fit_transform(text for text in hobbies['gaming'])
    features   = vectorizer.get_feature_names()
    visualizer = FreqDistVisualizer(features=features)
    visualizer.fit(docs)
    visualizer.poof(outpath='text_hobbies_gaming_FreqDistVisualizer.png')


def hobbiesTSNEVisualizer():
    '''
    t-SNE语料库可视化
    T分布随机邻域嵌入,t-SNE。Scikit-Learn将此分解方法实现为sklearn.manifold.TSNE转换器。
     通过使用来自原始维度和分解维度的不同分布将高维文档向量分解为二维。 通过分解为2维或3维,
     可以使用散点图来显示文档。
    '''
    corpus=load_corpus("data/hobbies")
    tfidf  = TfidfVectorizer()
    docs   = tfidf.fit_transform(corpus.data)
    labels = corpus.target
    tsne = TSNEVisualizer()
    tsne.fit(docs, labels)
    tsne.poof(outpath='text_hobbies_TSNEVisualizer.png')
    #Don't color points with their classes
    tsne = TSNEVisualizer(labels=["documents"])
    tsne.fit(docs)
    tsne.poof(outpath='text_hobbies_TSNEVisualizer_nocolor.png')


def hobbiesClusterTSNEVisualizer():
    '''
    聚类应用
    '''
    corpus=load_corpus("data/hobbies")
    tfidf  = TfidfVectorizer()
    docs   = tfidf.fit_transform(corpus.data)
    clusters=KMeans(n_clusters=5)
    clusters.fit(docs)
    tsne=TSNEVisualizer()
    tsne.fit(docs,["c{}".format(c) for c in clusters.labels_])
    tsne.poof(outpath='text_hobbies_cluster_TSNEVisualizer.png')

text_hobbies_FreqDistVisualizer.png

text_hobbies_FreqDistVisualizer_stop_words.png

text_hobbies_cooking_FreqDistVisualizer.png

text_hobbies_gaming_FreqDistVisualizer.png

text_hobbies_TSNEVisualizer.png

text_hobbies_TSNEVisualizer_nocolor.png

text_hobbies_cluster_TSNEVisualizer.png

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

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

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

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


【网络与爬虫 62】小程序爬虫终极攻略:微信支付宝小程序数据采集完全指南 本文深入解析微信和支付宝小程序的爬虫技术,从基础架构分析到高级逆向工程,涵盖WXML/AXML模板解析、API接口拦截、网络流量分析等核心技术。通过实战案例和代码示例,帮助开发者掌握小程序数据采集的完整技术栈。 阅读详情

相关推荐

20个闭环渗透测试项目:从漏洞发现到简历突围

渗透测试不仅是工具使用,更是对系统设计缺陷与实现偏差的深度推演。理解OWASP Top 10、Burp Suite等基础能力只是起点,真正具备工程价值的是能复现、可验证、可协作的完整攻击链。本文聚焦真实业务场景下的SSRF协议绕过、JWT签名机制缺陷、Redis未授权利用、Kong网关配置风险及etcd存储结构分析等核心热词,揭示漏洞本质在于架构决策与配置偏差的叠加态。适用于红队实战、甲方安全建设与乙方渗透审计等多类岗位,帮助从业者将技术动作升维为技术叙事。

weixin_32234493的博客 414

python——画t-sne图(含代码)

使用python画t-sne图。

wenqiwenqi123的博客 2万+

汽车工程师必看:从CAN到Ethernet,6种车载通信协议全解析(附应用场景对比)

本文全面解析了从CAN到Ethernet的6种车载通信协议,包括CAN、LIN、MOST、FlexRay等,并对比了它们的应用场景和技术特点。文章详细介绍了各协议的演进历程、技术优势及在现代汽车中的混合网络架构设计,为汽车工程师提供了实用的协议选型指南和未来通信技术发展趋势。

weixin_28683689的博客 492

Python课程第六周笔记及作业练习

Python第五周笔记作业练习 笔记 组合数据类型 三种基本数据类型: (1) 集合类型 (2) 序列类型:元组类型和列表类型 (3) 字典类型 集合类型及操作 (1) 集合类型定义 集合是多个元素的无序组合 -集合类型与数学中集合概念一致 -集合元素之间无序,每个元素唯一,不存在相同元素 -集合元素不可更改,不能是可变数据类型 -集合用大括号{}表示,元素间用逗号分隔 -建立集合类型用{}或set() -建立空集合类型,必须使用set() 重点: -集合用大括号{}表示,元素间用逗号分隔 -集合中每个元

qq_43541776的博客 2919

告别‘小爱同学’:用ESP32-S3和esp-sr SDK,从零打造一个离线语音助手(含完整代码)

本文详细介绍了如何利用ESP32-S3芯片和esp-sr SDK从零构建一个离线语音助手,涵盖硬件选型、声学设计、SDK配置及低功耗优化等关键步骤。通过实战案例和完整代码,帮助开发者实现自定义唤醒词和命令词,打造低成本、高隐私的本地语音控制解决方案。

weixin_29041195的博客 371

美团mtgsig 3.1.0算法还原:从加密入口到d1生成的完整链路拆解

本文详细拆解了美团mtgsig 3.1.0签名算法的完整逆向过程。通过定位加密入口函数eH,理清a6、a5、a8到d1的生成依赖链,并运用插桩技术,在JSVMP混淆环境下逐步还原了核心参数的生成逻辑,为逆向工程实践提供了清晰的纯算还原方法论。

oo7890的博客 777

t-分布邻域嵌入算法(t-SNE algorithm)简单理解

这篇文章主要介绍一个有效的数据降维的方法 t-SNE.大数据时代,数据量不仅急剧膨胀,数据也变得越来越复杂,数据的维度也随之增加。比如大图片,数据维度指的是像素的数量级,范围从数千到数百万。计算机可以处理任意多维的数据集,但我们人类认知只局限于3维空间,计算机依然需要我们(值得庆幸的),所以需要通过一些方法有效的可视化高维数据。通过观察现实世界的数据集发现其存在一些较低的本征维度。想像一下你拿着相机

Tinker Bell的博客 4万+

【vue看板】

大屏看板提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:代码量较多,看板中的。

weixin_46223284的博客 2772

t-SNE可视化-Python实现

t-Distributed Stochastic Neighbor Embedding (t-SNE) 是一种无监督的非线性技术,主要用于数据探索和高维数据的可视化。简单来说,t-SNE 让您对数据在高维空间中的排列方式有一种感觉或直觉。它由 Laurens van der Maatens 和 Geoffrey Hinton 于 2008 年开发。简单来说就是高维数据可视化,目的是观察高维数据的之间的分布情况。

renwu 2万+

在Ubuntu上安装Node.js编程

在Ubuntu操作系统上安装Node.js是非常简单的,本文将为您提供详细的安装步骤。这是一个简单的Node.js HTTP服务器示例,它将在本地主机的端口3000上监听请求,并返回"Hello, World!npm是Node.js的包管理器,您可以使用它来安装和管理Node.js模块。您已成功在Ubuntu上安装了Node.js,并创建并运行了一个简单的Node.js应用程序。现在,您已经成功安装了Node.js和npm,让我们创建一个简单的Node.js应用程序并运行它。如有任何疑问,请随时提问。

CodeNexus的博客 3524

把 SAP S/4HANA 中的 Maintain Email Templates 用好:从模板维护、语言变体、业务绑定到传输治理的完整实践

摘要:SAP邮件模板管理常被低估,实则关乎审批通知、业务提醒等关键输出。官方推荐通过复制标准模板实现自定义,而非直接修改标准内容,以保持核心稳定。模板维护涉及语言变体、业务绑定、数据传输等治理环节,需业务顾问与开发团队协作确保字段来源与渲染逻辑。实施时需注意Fiori配置、权限分配及传输管理,避免测试与生产环境差异。模板设计应平衡灵活性与复杂度,遵循分层测试策略(内容、数据、流程),并建立命名规范以维护资产清晰度。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 67

Python可视化神器Yellowbrick使用(1)

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

2401_84141210的博客 1067

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python可视化神器_详解Python可视化神器Yellowbrick使用

机器学习中非常重要的一环就是数据的可视化分析,从源数据的可视化到结果数据的可视化都离不开可视化工具的使用,sklearn+matplotlib的组合在日常的工作中已经满足了绝对大多数的需求,今天主要介绍的是一个基于sklearn和matplotlib模块进行扩展的可视化工具Yellowbrick。Yellowbrick的官方文档在这里。Yellowbrick是由一套被称为"Visualizers"...

weixin_39638012的博客 261

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python可视化神器Yellowbrick使用,Python常用面试题

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

2401_84141293的博客 505

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python语言实现lassocv中的可视化显示_Python可视化神器Yellowbrick使用

码农那点事儿关注我们,一起学习进步 作者:Together_CZ链接:https://blog.youkuaiyun.com/Together_CZ/article/details/86640784在机器学习、数据挖掘领域里面,接触到数据处理分析的人来说,数据探索是非常重要的一部分工作,而数据可视化会成为数据分析工程师完成数据探索工作的有力工具。本文主要是介绍一款我日常使用较多的可视化利器Yellowbr...

weixin_35015064的博客 935

字节跳动面试官工资,Python可视化神器Yellowbrick使用,面试的时候突然遇到答不上的问题怎么办

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2401_83947105的博客 923

架构设计过程,Python可视化神器Yellowbrick使用(1),【工作感悟】

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。一个人可以走的很快,但一群人才能走的更远。

2401_83621918的博客 607

Python可视化

Python_APP Python可视化神器Yellowbrick

Lakinlv的博客 245
上一篇: 知乎高赞:有哪些高逼格的公众号值得推荐
下一篇: 入门精深 | 14G最适合入门数据分析+Python教程资料,现在保存为时不晚!
Wang_AI
博客等级 码龄12年 991粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值