如何在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)

结果如下:

如何在Python中使用Yellowbrick实现可视化

结果看起来也是挺美观的。

之后用平行坐标的方法对高维数据进行作图,数据集同上:

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)

结果如下:

如何在Python中使用Yellowbrick实现可视化

这个最初没有看明白什么意思,其实就是高维特征数据的可视化分析,这个功能还可以对原始数据进行采样,之后再绘图。

基于癌症数据集,使用逻辑回归模型来分类,绘制分类报告

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)

结果如下:

如何在Python中使用Yellowbrick实现可视化

这样的结果展现方式还是比较美观的,在使用的时候发现了这个模块的一个不足的地方,就是:如果连续绘制两幅图片的话,第一幅图片就会累加到第二幅图片中去,多幅图片绘制亦是如此,在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)

如何在Python中使用Yellowbrick实现可视化

基于线性回归模型实现预测分析

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)

结果如下:

如何在Python中使用Yellowbrick实现可视化

基于共享单车数据使用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)

结果如下:

如何在Python中使用Yellowbrick实现可视化

基于共享单车数据绘制预测错误图

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中使用Yellowbrick实现可视化

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2021-03-24 01:21:52
收藏
分享
海报
0 条评论
161
上一篇:怎么在DataGridView中使用BindingNavigator实现一个分页功能 下一篇:怎么在Django中使用请求Request
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码