如何在Python中使用Yellowbrick实现可视化
如何在Python中使用Yellowbrick实现可视化?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Yellowbrick主要包含的组件如下:
Visualizers Visualizers也是estimators(从数据中习得的对象),其主要任务是产生可对模型选择过程有更深入了解的视图。从Scikit-Learn来看,当可视化数据空间或者封装一个模型estimator时,其和转换器(transformers)相似,就像"ModelCV"(比如RidgeCV,LassoCV)的工作原理一样。Yellowbrick的主要目标是创建一个和Scikit-Learn类似的有意义的API。其中最受欢迎的visualizers包括: 特征可视化 RankFeatures:对单个或者两两对应的特征进行排序以检测其相关性 ParallelCoordinates:对实例进行水平视图 RadialVisualization:在一个圆形视图中将实例分隔开 PCAProjection:通过主成分将实例投射 FeatureImportances:基于它们在模型中的表现对特征进行排序 ScatterandJointPlots:用选择的特征对其进行可视化 分类可视化 ClassBalance:看类的分布怎样影响模型 ClassificationReport:用视图的方式呈现精确率,召回率和F1值 ROC/AUCCurves:特征曲线和ROC曲线子下的面积 ConfusionMatrices:对分类决定进行视图描述 回归可视化 PredictionErrorPlot:沿着目标区域对模型进行细分 ResidualsPlot:显示训练数据和测试数据中残差的差异 AlphaSelection:显示不同alpha值选择对正则化的影响 聚类可视化 K-ElbowPlot:用肘部法则或者其他指标选择k值 SilhouettePlot:通过对轮廓系数值进行视图来选择k值 文本可视化 TermFrequency:对词项在语料库中的分布频率进行可视化 t-SNECorpusVisualization:用随机邻域嵌入来投射文档
这里以癌症数据集为例绘制ROC曲线,如下:
deftestFunc1(savepath='Results/breast_cancer_ROCAUC.png'): ''' 基于癌症数据集的测试 ''' data=load_breast_cancer() X,y=data['data'],data['target'] X_train,X_test,y_train,y_test=train_test_split(X,y) viz=ROCAUC(LogisticRegression()) viz.fit(X_train,y_train) viz.score(X_test,y_test) viz.poof(outpath=savepath)
结果如下:
结果看起来也是挺美观的。
之后用平行坐标的方法对高维数据进行作图,数据集同上:
deftestFunc2(savepath='Results/breast_cancer_ParallelCoordinates.png'): ''' 用平行坐标的方法对高维数据进行作图 ''' data=load_breast_cancer() X,y=data['data'],data['target'] print'X_shape:',X.shape#X_shape:(569L,30L) visualizer=ParallelCoordinates() visualizer.fit_transform(X,y) visualizer.poof(outpath=savepath)
结果如下:
这个最初没有看明白什么意思,其实就是高维特征数据的可视化分析,这个功能还可以对原始数据进行采样,之后再绘图。
基于癌症数据集,使用逻辑回归模型来分类,绘制分类报告
deftestFunc3(savepath='Results/breast_cancer_LR_report.png'): ''' 基于癌症数据集,使用逻辑回归模型来分类,绘制分类报告 ''' data=load_breast_cancer() X,y=data['data'],data['target'] model=LogisticRegression() visualizer=ClassificationReport(model) X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42) visualizer.fit(X_train,y_train) visualizer.score(X_test,y_test) visualizer.poof(outpath=savepath)
结果如下:
这样的结果展现方式还是比较美观的,在使用的时候发现了这个模块的一个不足的地方,就是:如果连续绘制两幅图片的话,第一幅图片就会累加到第二幅图片中去,多幅图片绘制亦是如此,在matplotlib中可以使用plt.clf()方法来清除上一幅图片,这里没有找到对应的API,希望有找到的朋友告知一下。
接下来基于共享单车数据集进行租借预测,具体如下:
首先基于特征对相似度分析方法来分析共享单车数据集中两两特征之间的相似度
deftestFunc5(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)
基于线性回归模型实现预测分析
deftestFunc7(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)
结果如下:
基于共享单车数据使用AlphaSelection
deftestFunc8(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)
结果如下:
基于共享单车数据绘制预测错误图
deftestFunc9(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) blog.csdn.net/Together_CZ/article/details/86640784
结果如下:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...