数据可视化是任何数据分析、数据挖掘、机器学习类任务里面都避不开的一个话题,数据可视化的意义远不仅仅是“画出来”那么简单,在数据建模前期往往要借助于数据可视化处理来对原始数据进行探索性分析,比如分析数据分布、缺失情况、分组情况等等,对于后面数据处理阶段的工作有着重要的指导作用,在我前面的博文里面已经有介绍到很多数据可视化利器,今天再来介绍推荐一款神器,为什么称之为神器呢?因为这个对于很多从事机器学习工作的人来说绝对是不可或缺的工具,能够很方便用极少的代码量就可以会指出来我们所需要指标图。

接下来言归正传,Scikit-plot仓库地址在这里,截图如下:

为了方便大家学习使用,官方也推出了文档介绍,地址在这里,截图如下:

在对官方文档进行一番学习实践之后,总结得到的Scikit-plot模块主要提供的可视化指标图归为两类,分别是:聚类和分类任务。当然了对于数据降维处理等方面也有提供基础的方法,不知道后面官方会不会持续开发新的功能,比如把回归类型的任务指标图可视化功能也囊括其中呢?

废话不多说了,下面直接切入正题,对于我来说,学习一个模块最好的办法就是好应用实践,说白了就是通过代码来加深理解,这里也不例外,我们首先借助于Scikit-plot模块完成一个常规机器学习里面分类任务的可视化,这里一些指标图目前只支持二分类任务,比如:增益曲线、提升度曲线等等,所以为了方便,这里的数据集也构建为二分类任务的数据集,详细代码如下:

def classifyTask():'''分类任务'''X, y = getClassificationData(ns=1000,nf=5,nc=2)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)model = GaussianNB()model.fit(X_train, y_train)predicted_probas = model.predict_proba(X_test)#ROC曲线skplt.metrics.plot_roc(y_test, predicted_probas)plt.savefig('pic/model_classification_roc.jpg')#P-R曲线skplt.metrics.plot_precision_recall_curve(y_test, predicted_probas, cmap='nipy_spectral')plt.savefig('pic/model_classification_pr.jpg')#混淆矩阵predictions = cross_val_predict(model, X, y)plot = skplt.metrics.plot_confusion_matrix(y, predictions, normalize=True)plt.savefig('pic/model_classification_confusionMatrix.jpg')#KS统计图model = LogisticRegression()model = GaussianNB()model.fit(X, y)probas = model.predict_proba(X)skplt.metrics.plot_ks_statistic(y_true=y, y_probas=probas)plt.savefig('pic/model_classification_ks.jpg')#累积增益图model = LogisticRegression()model = GaussianNB()model = model.fit(X_train, y_train)y_probas = model.predict_proba(X_test)skplt.metrics.plot_cumulative_gain(y_test, y_probas)plt.savefig('pic/model_classification_cumulative_gain.jpg')#提升曲线model = LogisticRegression()model = GaussianNB()model = model.fit(X_train, y_train)y_probas = model.predict_proba(X_test)skplt.metrics.plot_lift_curve(y_test, y_probas)plt.savefig('pic/model_classification_lift_curve.jpg')#学习曲线图model = RandomForestClassifier()model = GaussianNB()skplt.estimators.plot_learning_curve(model, X, y)plt.savefig('pic/model_classification_learning_curve.jpg')#分类器特征重要性的图model = RandomForestClassifier()model.fit(X, y)skplt.estimators.plot_feature_importances(model, feature_names=['F1','F2','F3','F4','F5'])plt.savefig('pic/model_classification_feature_importances.jpg')

上面的代码,以分类为切入点,将Scikit-plot提供的所有分类指标图功能都进行了使用,接下来我们看一下具体结果。

model_classification_roc.jpg  分类ROC曲线

model_classification_pr.jpg  分类PR曲线

model_classification_confusionMatrix.jpg  分类混淆矩阵

model_classification_ks.jpg  分类KS统计图

model_classification_cumulative_gain.jpg   分类累积增益图

model_classification_lift_curve.jpg  分类提升曲线

model_classification_learning_curve.jpg  分类学习曲线

model_classification_feature_importances.jpg  分类特征重要性分析

到这里,分类任务提供的所有指标可视化方法都介绍使用完毕,Scikit-plot对于分类任务也提供了交叉验证方法,这里一并使用介绍一下,交叉验证目前支持的可视化方法主要包括:ROC曲线、P-R曲线、混淆矩阵、KS统计图,结果如下:

model_classification_roc_cv.jpg  分类交叉验证ROC曲线

model_classification_pr_cv.jpg  分类交叉验证PR曲线

model_classification_confusionMatrix_cv.jpg  分类交叉验证混淆矩阵

model_classification_ks_cv.jpg  分类交叉验证KS统计图

到这里有关分类任务的指标可视化方法就都介绍使用结束了,接下来我们来看聚类任务的指标可视化分析,代码实现如下所示:

def clusterTask():'''聚类任务'''X, y = getClusterData(ns=1000,nf=5,centers=[[-1,-1],[1,1],[2,2]],cluster_std=[0.4,0.5,0.2])kmeans = KMeans(n_clusters=3, random_state=1)cluster_labels = kmeans.fit_predict(X)#轮廓系数曲线skplt.metrics.plot_silhouette(X, cluster_labels)plt.savefig('pic/kmeans_silhouette.jpg')#KMeans聚类肘部曲线kmeans = kmeans = KMeans(random_state=1)skplt.cluster.plot_elbow_curve(kmeans, X, cluster_ranges=range(1, 30))plt.savefig('pic/kmeans_elbow_curve.jpg')

接下来来看具体结果数据。

kmeans_silhouette.jpg  聚类轮廓系数

kmeans_elbow_curve.jpg  聚类肘部曲线

聚类的可视化相比于分类来说要简单很多,接下来我们来看数据降维可视化的方法,具体代码实现如下所示:

def pcaHandle():'''数据降维处理'''X, y = getClassificationData(ns=1000,nf=5,nc=2)#PCA 组件的解释方差比pca = PCA(random_state=1)pca.fit(X)skplt.decomposition.plot_pca_component_variance(pca)plt.savefig('pic/pca_component_variance.jpg')#PCA 的二维投影pca = PCA(random_state=1)pca.fit(X)skplt.decomposition.plot_pca_2d_projection(pca, X, y)plt.savefig('pic/pca_2d_projection.jpg')

结果数据如下所示。

pca_component_variance.jpg  PCA的解释方差比

pca_2d_projection.jpg  PCA二维投影

之所以称Scikit-plot为机器学习领域里面的可视化神器,主要就是它与sklearn完美兼容,另外其提供的主要方法都是我们使用频度很高的,所以有这么一款神器,对于每一位机器学习从业者来说都可以节省很多不必要的时间开销,从而大幅提升工作效率。

可视化神器Scikit-plot实践入门相关推荐

  1. 高级可视化神器Plotly快速入门

    微信公众号:尤而小屋 作者:Peter 编辑:Peter 一文爱上高级可视化神器Plotly 数据可视化已经逐渐发展和深入到我们生活的各个方面,往往遇到数据分析类的工作,借助可视化的方式来呈现我们的数 ...

  2. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇

    1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...

  3. 为什么plotly被称为“有史以来最牛逼”可视化神器?

    Plotly,一个用于做分析和可视化的在线平台,曾被网友称为"有史以来最牛逼"可视化神器(具体无从考据,只是在搜索资料时看到的),为何有如此称号?因为它功能强大,功能强大,功能强大 ...

  4. 机器学习第6天:数据可视化神器--Matplotlib

    文章目录 一.Matplotlib简介 二.散点图 第1步:导入数据 第2步:拆分成训练集和测试集 第3步:使用简单线性回归模型来训练训练集 第4步:绘制散点图 二.线图 三.等高线图 第1步:定义一 ...

  5. 吹爆了这个可视化神器,上手后直接开大~

    今天给大家推荐一个可视化神器 - Plotly_express ,上手非常的简单,基本所有的图都只要一行代码就能绘出一张非常酷炫的可视化图. 以下是这个神器的详细使用方法,文中附含大量的 GIF 动图 ...

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

    机器学习中非常重要的一环就是数据的可视化分析,从源数据的可视化到结果数据的可视化都离不开可视化工具的使用,sklearn+matplotlib的组合在日常的工作中已经满足了绝对大多数的需求,今天主要介 ...

  7. 据说这是史上最牛逼的可视化神器

    全世界只有3.14 % 的人关注了 数据与算法之美 我们粉丝里面有很多小伙伴喜欢玩数据分析,粗略估计有几千人.数据分析离不开数据可视化.比如我们前面介绍过pandas画图,matplotlib画图,p ...

  8. 自学python编程笔记本推荐-这件神器,每个 Python入门学习者都值得一试

    原标题:这件神器,每个 Python入门学习者都值得一试 灰常实用的一篇文章,看完你会来点赞滴. 不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来 ...

  9. Visdom:Python可视化神器

    Visdom:可视化神器 项目地址:visdom 文章目录 Visdom:可视化神器 visdom实质 visdom核心概念 env:环境 pane:窗格 创建Visdom环境 常用API plot. ...

  10. 酷炫!可视化神器Plotly玩转饼图

    酷炫!可视化神器Plotly玩转饼图 之前发表过两篇关于Plotly的文章: 入门篇:酷炫!36张图爱上高级可视化神器Plotly_Express 散点图:酷炫!可视化神器Plotly玩转散点图 Pl ...

最新文章

  1. mysql生产环境加索引_MySQl开发和生产环境索引对比
  2. 判断32位整数二进制中1的个数
  3. SAP UI5对于颜色使用的最佳实践
  4. 创建非矩形的Windows 窗体
  5. Android框架式编程之MVP架构
  6. 【设计模式之美】<Reading Notes>继承与组合
  7. 端口被占用,怎么解决?
  8. centos设置启动mysql,Centos设置开机启动Apache和Mysql
  9. 第六届蓝桥杯:三羊献瑞
  10. pku2060 Taxi Cab Scheme
  11. python数据包pandas_python | 数据分析(二)- Pandas数据包
  12. ThinkPHP中使用聚合查询去重求和
  13. 一个本科毕业生的Java学习之路
  14. android视频动态壁纸app,手机壁纸视频动态壁纸
  15. 计算机网络高频知识点(一)
  16. linux开启终端窗口快捷键
  17. Java选择题(十八)
  18. play 框架目录结构
  19. [CTF]No.0002 莫桑比克-php是最好的语言(待完善)
  20. 软件工程网络15个人作业3(201521123028 李家俊)

热门文章

  1. elementui select 默认值
  2. 最小公倍数和最大公约数的简洁写法
  3. 阿里消息中间件ONS消息乱序问题(二)
  4. mysql首字母排序,抛弃传统的php首字母排序
  5. MVC学习系列7--下拉框的联动
  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览
  7. less,sass,stylus配置和应用教程及三者比较
  8. SecureCRT安装(5)
  9. 消息队列一:为什么需要消息队列(MQ)?
  10. MSP430G2553电子时钟实验