利用scikit-plot可视化机器学习模型!

news2024/11/16 3:17:00

关注“Python专栏”微信公众号,回复暗号【面试大全】,立即领取面试题+简历模板。

scikit-learn (sklearn)是Python环境下常见的机器学习库,包含了常见的分类、回归和聚类算法。在训练模型之后,常见的操作是对模型进行可视化,则需要使用Matplotlib进行展示。

scikit-plot是一个基于sklearn和Matplotlib的库,主要的功能是对训练好的模型进行可视化,功能比较简单易懂。

https://scikit-plot.readthedocs.io

pip install scikit-plot

功能1:评估指标可视化

  • scikitplot.metrics.plot_confusion_matrix快速展示模型预测结果和标签计算得到的混淆矩阵。

import scikitplot as skplt
rf = RandomForestClassifier()
rf = rf.fit(X_train, y_train)
y_pred = rf.predict(X_test)

skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
plt.show()

  • scikitplot.metrics.plot_roc快速展示模型预测的每个类别的ROC曲线。

import scikitplot as skplt
nb = GaussianNB()
nb = nb.fit(X_train, y_train)
y_probas = nb.predict_proba(X_test)

skplt.metrics.plot_roc(y_test, y_probas)
plt.show()

  • scikitplot.metrics.plot_ks_statistic从标签和分数/概率生成 KS 统计图。

import scikitplot as skplt
lr = LogisticRegression()
lr = lr.fit(X_train, y_train)
y_probas = lr.predict_proba(X_test)

skplt.metrics.plot_ks_statistic(y_test, y_probas)
plt.show()

  • scikitplot.metrics.plot_precision_recall从标签和概率生成PR曲线

import scikitplot as skplt
nb = GaussianNB()
nb.fit(X_train, y_train)
y_probas = nb.predict_proba(X_test)

skplt.metrics.plot_precision_recall(y_test, y_probas)
plt.show()

  • scikitplot.metrics.plot_silhouette对聚类结果进行silhouette analysis分析

import scikitplot as skplt
kmeans = KMeans(n_clusters=4, random_state=1)
cluster_labels = kmeans.fit_predict(X)

skplt.metrics.plot_silhouette(X, cluster_labels)
plt.show()

  • scikitplot.metrics.plot_calibration_curve绘制分类器的矫正曲线

import scikitplot as skplt
rf = RandomForestClassifier()
lr = LogisticRegression()
nb = GaussianNB()
svm = LinearSVC()
rf_probas = rf.fit(X_train, y_train).predict_proba(X_test)
lr_probas = lr.fit(X_train, y_train).predict_proba(X_test)
nb_probas = nb.fit(X_train, y_train).predict_proba(X_test)
svm_scores = svm.fit(X_train, y_train).decision_function(X_test)
probas_list = [rf_probas, lr_probas, nb_probas, svm_scores]
clf_names = ['Random Forest', 'Logistic Regression',
              'Gaussian Naive Bayes', 'Support Vector Machine']

skplt.metrics.plot_calibration_curve(y_test,
                                      probas_list,
                                      clf_names)
plt.show()

功能2:模型可视化

  • scikitplot.estimators.plot_learning_curve生成不同训练样本下的训练和测试学习曲线图。

import scikitplot as skplt
rf = RandomForestClassifier()

skplt.estimators.plot_learning_curve(rf, X, y)
plt.show()

  • scikitplot.estimators.plot_feature_importances可视化特征重要性。

import scikitplot as skplt
rf = RandomForestClassifier()
rf.fit(X, y)

skplt.estimators.plot_feature_importances(
     rf, feature_names=['petal length', 'petal width',
                        'sepal length', 'sepal width'])
plt.show()

功能3:聚类可视化

  • scikitplot.cluster.plot_elbow_curve展示聚类的肘步图。

import scikitplot as skplt
kmeans = KMeans(random_state=1)

skplt.cluster.plot_elbow_curve(kmeans, cluster_ranges=range(1, 30))
plt.show()

功能4:降维可视化

  • scikitplot.decomposition.plot_pca_component_variance绘制 PCA 分量的解释方差比。

import scikitplot as skplt
pca = PCA(random_state=1)
pca.fit(X)

skplt.decomposition.plot_pca_component_variance(pca)
>plt.show()

  • scikitplot.decomposition.plot_pca_2d_projection绘制PCA降维之后的散点图。

import scikitplot as skplt
pca = PCA(random_state=1)
pca.fit(X)

skplt.decomposition.plot_pca_2d_projection(pca, X, y)
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这么坑?3年经验我要25K,结果只给15K····

2023找到一份满意的工作实在是太难了呀,面试了十几家公司,没有一个满意的offer 我的情况 大概介绍一下个人情况,女,本科,三年多测试工作经验,懂python,会写脚本,会selenium&#xf…

北漂5年终上岸,年薪40W并非遥不可及····

关于我,普通二本,非计算机专业,培训出身,北漂,五年多的工作经验,做过外包,中间有过频繁的跳槽经历,手工点点点为主,最近确认了新Offer,远程办公,涨…

C++ Release版软件 程序运行丢失MSVCR120D.dll的解决方法

软件在Debug模式下运行时正常的,但是切换到Release模式下就弹出错误提示:无法启动此程序,因为计算机中丢失MSVCR120D.dll。尝试重新安装该程序以解决此问题。 解决方法如下: 1、项目“属性”---->配置给为“Release”版本----&…

Python数据分析——教育平台的线上课程智能推荐策略(2020泰迪杯数据分析技能赛)

赛题背景:近年来,随着互联网与通信技术的高速发展,学习资源的建设与共享呈现出新的发展趋势,各种网课、慕课、直播课等层出不穷,各种在线教育平台和学习 应用纷纷涌现。尤其是 2020 年春季学期,受新冠疫情影…

SciencePub学术 | 网络通信类重点SCIEI征稿中

SciencePub学术 刊源推荐: 网络通信类重点SCI&EI征稿中!稳定检索56年!信息如下,录满为止: 一、期刊概况: 网络通信类重点SCI&EI 【期刊简介】IF:1.0-1.5,JCR4区,中科院4区…

metasploit-framework(msf)——学习与实践

MSF是Metasploit Framework的缩写,是一款广泛使用的渗透测试工具,具有强大的攻击功能。它提供了一个模块化的平台,通过将各种攻击载荷、漏洞利用和辅助工具组装在一起,可用于模拟各种攻击,测试系统安全性,也…

【深度学习】日常笔记2

一直以来其实对调参这个词不太熟悉,后面知道了比如学习率就为超参数,是被调参的对象: ↑标量方程对向量的导数 大概就是↓ 在对矩阵求导时,我们需要使用矩阵微积分中的求导法则。对于一个标量函数 f(x),它关于向量 x 的…

小程序项目—知识付费系统源码(多版本)

随着互联网的发展,知识付费成为了一种新的商业模式,越来越多的人开始通过知识付费来获取所需的知识和技能。为了更好地管理和运营知识付费系统,需要开发一个管理后台,本文将介绍知识付费系统管理后台的功能和实现。 产品介绍 &am…

云渲染对学生党有哪些好处和挑战?

云渲染是一种依托于云计算的云端服务,用户将本地任务提交到远程服务器,由远程的计算机集群资源进行运算操作,将上传的任务进行云端渲染后再返回本地。云渲染的优势是可以节省本地设备的性能和时间,提高渲染效率和质量。那么&#…

Flutter路由——Navigator2.0

Navigator 2.0提供了一系列全新的接口,可以实现将路由状态成为应用状态的一部分,新增的API如下: Page:用来表示Navigator路由栈中各个页面的不可变对象,Page是一个抽象类通常使用它的派生类:MaterialPage或CupertinoP…

Threejs进阶之十八:使用ExtrudeGeometry从二维图形创建三维几何体

目录 ExtrudeGeometry类构造函数options包含的参数 使用ExtrudeGeometry从二维图形创建三维图形的基本步骤1.创建二维图形2.创建轮廓线(outline)3.创建材质和网格对象补充内容:将拉伸图形生成为线框模式 上一节我们介绍了Threejs中二维图形相…

(转载)基于模拟退火算法的TSP问题求解(matlab实现)

1 理论基础 1.1 模拟退火算法基本原理 模拟退火(simulated annealing,SA)算法的思想最早是由Metropolis等提出的。其出发点是基于物理中固体物质的退火过程与一般的组合优化问题之间的相似性。模拟退火法是一种通用的优化算法,其物理退火过程由以下三部分组成&am…

【6.08 代随_51day】 最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费

最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期1.方法图解步骤递归代码 买卖股票的最佳时机含手续费1.方法代码 最佳买卖股票时机含冷冻期 力扣连接:309. 最佳买卖股票时机含冷冻期(中等) 1.方法 1.具体…

【uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录】

uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录 前言一、实现思路1. 后端接口a. LoginByCodeb. LoginMpAlic. LoginMpWx 二、最终实现流程图1.流程图在这里插入图片描述 总结 前言 项目背景 : 项目是使用 uniapp 来实现的多端小程序 , 当前实…

LVS负载均衡群集部署——DR直接路由模式

这里写目录标题 一 、 LVS-DR 工作原理二、数据包流向分析三、LVS-DR 模式的特点四、ARP问题4.1 问题一:IP地址冲突4.2 问题二:第二次再有访问请求 五、部署LVS-DR集群5.1 配置Tomcat 多实例服务器5.2 配置web节点服务器配置web1节点服务器配置Nginx七层…

00后干一年跳槽就20K,测试老油条表示真怕被这个“卷王”干掉····

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…

2023-06-05 stonedb-在聚合的场景查询为空无法执行case属性-问题分析-及定位问题的思路

目录 摘要: 查询SQL: 处理该问题的思路分析: 削减查询SQL的操作符 tianmu引擎的查询SQL innodb引擎的查询SQL mysql/sql和innodb执行分析: 执行过程的trace日志: 摘出一些涉及查询执行的部分 思路分析: mysql/sql层的核心处理: Item_func_case::fix_fields 调用堆…

【OpenCV DNN】Flask 视频监控目标检测教程 07

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 07 3.7 OpenCVFlask实时监控人脸识别cvFlask08 项目的文件树cvFlask08 项目的Python程序cvFlask08 项目的网页模板cvFlask08 项目的运行 本系列从零开始,详细…

2023上海国际嵌入式展 | 如何通过人工智能驱动的自动化测试工具提升嵌入式开发效率

2023年6月14日到16日,龙智将在2023上海国际嵌入式展(embedded world China 2023)A055展位亮相。同时,6月14日下午3:00-3:30,龙智资深DevSecOps顾问巫晓光将于创新技术及应用发展论坛第二论坛区(A325展位&am…

idea代码检查插件

1,SonarLint Idea 安装 Sonar 插件提升代码质量_idea sonar插件_打代码的苏比特的博客-CSDN博客 2,immomo Mybatis XML Mapper SQL注入漏洞发现与一键修复-----项目静态代码安全审计idea插件工具MOMO CODE SEC INSPECTOR-Java_idea sql注入 插件_North…