太好用!模型结果也可以可视化表示啦...

2023-11-15 16:02:42 浏览数 (1)

前言

今天是我的可视化课程上线的第226天,目前学员415人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。

今天是我的可视化学习社群上线的第6天,目前学员107人,可视化学习社区以我的书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供课堂式教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。

scikit-plot可视化库介绍

有学员向我提问,咨询有没有关于模型可视化的一些工具推荐。特意找了一下资料,这就给大家介绍一个非常好用的Python可视化工具-scikit-plot,专门用于模型结果的可视化展示,功能比较简单易懂。

  • scikit-plot库介绍

scikit-plot是一个基于Python语言的开源工具包,它提供了一系列用于可视化机器学习模型的函数和工具。它建立在matplotlib库之上,旨在简化通过一些常见图表来评估和分析机器学习模型的过程。

scikit-plot提供了一种简单的方式来绘制各种性能指标图表,如混淆矩阵、ROC曲线、PR曲线、学习曲线等。它还支持对模型的特征重要性进行可视化,以及绘制分类问题中的决策边界。

以下是scikit-plot工具包的一些主要功能:

  1. 混淆矩阵可视化:混淆矩阵是评估分类模型性能的重要工具。scikit-plot提供了绘制混淆矩阵的函数,可以直观地显示真实标签和预测结果之间的对应关系。
  2. ROC曲线和AUC:ROC曲线是评估二分类模型性能的一种常用方法。scikit-plot提供了绘制ROC曲线和计算AUC(Area Under the Curve)的函数,帮助用户评估模型的准确性。
  3. PR曲线:PR曲线是另一种评估二分类模型性能的指标。scikit-plot可以绘制PR曲线,并计算PR曲线下面积(Average Precision)。
  4. 学习曲线:学习曲线显示了模型在不同训练样本数量下的性能。scikit-plot提供了绘制学习曲线的函数,帮助用户评估模型的过拟合或欠拟合情况。
  5. 特征重要性可视化:对于具有特征重要性的模型(如决策树、随机森林等),scikit-plot提供了一些函数来可视化特征的重要性排序。
  6. 决策边界可视化:对于二维分类问题,scikit-plot可以帮助绘制决策边界,将不同类别的数据点分开。

除了以上功能之外,scikit-plot还支持其他一些图表和工具,如精确度-召回率曲线、分类报告、目标分布等。

  • 混淆矩阵可视化
代码语言:javascript复制
import scikitplot as skplt
skplt.metrics.plot_confusion_matrix(y, predictions, normalize=True)
plt.show()

混淆矩阵

  • ROC曲线
代码语言:javascript复制
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()

ROC曲线

  • PR曲线
代码语言:javascript复制
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()

PR曲线

  • 聚类分析轮廓图
代码语言:javascript复制
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()

聚类分析轮廓图

  • 校准曲线
代码语言:javascript复制
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()

校准曲线

更多关于scikit-plot库的用法和可视化案例,可参考scikit-plot库官网[1]

(PS:上述模型分析可视化技巧,也会更新到我们的可视化学习圈子中)

可视化学习圈子是干什么的?

科研论文配图书籍学习圈子主要通过以下几个方面,给大家带来比纸质书籍更丰富的学习内容:

  • 直播教学,和读者零距离互动交流
  • 及时修正勘误和定期新增绘制知识点
  • 拓展衍生,绘图知识点远超书籍本身
  • 直播视频 拓展资料 书籍,学习更高效

「PS」:我们直播教学内容为课堂式教学,原作者带着大家对书籍一章、一节、一页的进行教学。而且直播的视频都会通过剪辑后整理成课程,圈子中的同学可以免费、反复观看。当然,新增内容和定期答疑直播也是如此。

  • 为何会有这个书籍学习社群? 除了上面介绍到的原因之外,无门槛的微信群难免会鱼龙混杂,问题和质量都无法得到保证,而且一些关键问题经常被淹没,且没有沉淀价值。
  • 随着添加我微信的人日益增多,向我提问的人也越来越多,随便回答一下就太不负责任了;不回答也不是很好;如果都仔细回答,我也有自己的工作并且确实很忙,真的有点心有余而力不足!所以我才会建立这么一个渠道来沉淀我的可视化技巧和分享经验,以及给大家提供一个坚持学习的平台。

系统学习可视化

当然,在学习数据可视化的道路上,你也有很多问题得不到解答,也可以加入我们的可视化课程(可视化系列课程推文)后,在学员群里和大家一起谈论,一起进步,或者直接向我提问。如果我觉得你的问题很具有普适性,我会把它写成文章发布在公众号上,让更多人看到,有关我们数据可视化系列课程的服务内容,可以参考下面的 阅读原文。

猜你喜欢

Xarray,不用ArcGIS,所有地理空间绘图全搞定...

Nature都推荐的箱线图(Boxplot)绘制工具长啥样?免费、在线、灵活操作...?

集成Matplotlib、Bokeh、Plotly!这个交互式可视化工具这么强的吗?

完美解决Matplotlib绘图中、英文字体混显问题..

MATLAB绘图不好看?!不是,你是还没发现这几个工具包吧..

不是,这个地理数据工具这么强的吗?数据处理、可视化它都行..

这种环形图太难画?!带你一行代码搞定..

这种图太多人问了,绘制方法真的很简单..

不是,这封面图这么多人问的吗?教程来了

不用Seaborn,这个工具也能绘制超炫的统计图形···

NetworkX,网络结构图最强绘制工具·····

所有科研地理图形它都有,这个工具有点猛····

Nature、Science配图可以一键绘制?!我懵了···

节后第一天,就因为论文配图,被导师怼了一上午·····

plotnine,打死不学R语言, 我可以用Python到40岁.....

TUEplots,一天100张论文配图,导师惊了·· 参考资料

[1]

scikit-plot库官网: https://scikit-plot.readthedocs.io/en/stable/index.html。

0 人点赞