最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python可視化神器Yellowbrick使用

 更新時(shí)間:2019年11月11日 11:19:30   作者:Together_CZ  
Yellowbrick是由一套被稱為"Visualizers"組成的可視化診斷工具組成的套餐,其由Scikit-Learn API延伸而來,對(duì)模型選擇過程其指導(dǎo)作用。這篇文章主要介紹了Python可視化神器Yellowbrick使用,需要的朋友可以參考下

機(jī)器學(xué)習(xí)中非常重要的一環(huán)就是數(shù)據(jù)的可視化分析,從源數(shù)據(jù)的可視化到結(jié)果數(shù)據(jù)的可視化都離不開可視化工具的使用,sklearn+matplotlib的組合在日常的工作中已經(jīng)滿足了絕對(duì)大多數(shù)的需求,今天主要介紹的是一個(gè)基于sklearn和matplotlib模塊進(jìn)行擴(kuò)展的可視化工具Yellowbrick。

Yellowbrick的官方文檔在

Yellowbrick主要包含的組件如下:

Visualizers
Visualizers也是estimators(從數(shù)據(jù)中習(xí)得的對(duì)象),其主要任務(wù)是產(chǎn)生可對(duì)模型選擇過程有更深入了解的視圖。從Scikit-Learn來看,當(dāng)可視化數(shù)據(jù)空間或者封裝一個(gè)模型estimator時(shí),其和轉(zhuǎn)換器(transformers)相似,就像"ModelCV" (比如 RidgeCV, LassoCV )的工作原理一樣。Yellowbrick的主要目標(biāo)是創(chuàng)建一個(gè)和Scikit-Learn類似的有意義的API。其中最受歡迎的visualizers包括:
 
特征可視化
Rank Features: 對(duì)單個(gè)或者兩兩對(duì)應(yīng)的特征進(jìn)行排序以檢測(cè)其相關(guān)性
Parallel Coordinates: 對(duì)實(shí)例進(jìn)行水平視圖
Radial Visualization: 在一個(gè)圓形視圖中將實(shí)例分隔開
PCA Projection: 通過主成分將實(shí)例投射
Feature Importances: 基于它們?cè)谀P椭械谋憩F(xiàn)對(duì)特征進(jìn)行排序
Scatter and Joint Plots: 用選擇的特征對(duì)其進(jìn)行可視化
分類可視化
Class Balance: 看類的分布怎樣影響模型
Classification Report: 用視圖的方式呈現(xiàn)精確率,召回率和F1值
ROC/AUC Curves: 特征曲線和ROC曲線子下的面積
Confusion Matrices: 對(duì)分類決定進(jìn)行視圖描述
回歸可視化
Prediction Error Plot: 沿著目標(biāo)區(qū)域?qū)δP瓦M(jìn)行細(xì)分
Residuals Plot: 顯示訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)中殘差的差異
Alpha Selection: 顯示不同alpha值選擇對(duì)正則化的影響
聚類可視化
K-Elbow Plot: 用肘部法則或者其他指標(biāo)選擇k值
Silhouette Plot: 通過對(duì)輪廓系數(shù)值進(jìn)行視圖來選擇k值
文本可視化
Term Frequency: 對(duì)詞項(xiàng)在語料庫中的分布頻率進(jìn)行可視化
t-SNE Corpus Visualization: 用隨機(jī)鄰域嵌入來投射文檔

這里以癌癥數(shù)據(jù)集為例繪制ROC曲線,如下:

def testFunc1(savepath='Results/breast_cancer_ROCAUC.png'):
 '''
 基于癌癥數(shù)據(jù)集的測(cè)試
 '''
 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)

結(jié)果如下:

結(jié)果看起來也是挺美觀的。

之后用平行坐標(biāo)的方法對(duì)高維數(shù)據(jù)進(jìn)行作圖,數(shù)據(jù)集同上:

def testFunc2(savepath='Results/breast_cancer_ParallelCoordinates.png'):
 '''
 用平行坐標(biāo)的方法對(duì)高維數(shù)據(jù)進(jìn)行作圖
 '''
 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)

結(jié)果如下:

這個(gè)最初沒有看明白什么意思,其實(shí)就是高維特征數(shù)據(jù)的可視化分析,這個(gè)功能還可以對(duì)原始數(shù)據(jù)進(jìn)行采樣,之后再繪圖。

基于癌癥數(shù)據(jù)集,使用邏輯回歸模型來分類,繪制分類報(bào)告

def testFunc3(savepath='Results/breast_cancer_LR_report.png'):
 '''
 基于癌癥數(shù)據(jù)集,使用邏輯回歸模型來分類,繪制分類報(bào)告
 '''
 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)

結(jié)果如下:


這樣的結(jié)果展現(xiàn)方式還是比較美觀的,在使用的時(shí)候發(fā)現(xiàn)了這個(gè)模塊的一個(gè)不足的地方,就是:如果連續(xù)繪制兩幅圖片的話,第一幅圖片就會(huì)累加到第二幅圖片中去,多幅圖片繪制亦是如此,在matplotlib中可以使用plt.clf()方法來清除上一幅圖片,這里沒有找到對(duì)應(yīng)的API,希望有找到的朋友告知一下。

接下來基于共享單車數(shù)據(jù)集進(jìn)行租借預(yù)測(cè),具體如下:

首先基于特征對(duì)相似度分析方法來分析共享單車數(shù)據(jù)集中兩兩特征之間的相似度

def testFunc5(savepath='Results/bikeshare_Rank2D.png'):
 '''
 共享單車數(shù)據(jù)集預(yù)測(cè)
 '''
 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)

基于線性回歸模型實(shí)現(xiàn)預(yù)測(cè)分析

def testFunc7(savepath='Results/bikeshare_LinearRegression_ResidualsPlot.png'):
 '''
 基于共享單車數(shù)據(jù)使用線性回歸模型預(yù)測(cè)
 '''
 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)

結(jié)果如下:

基于共享單車數(shù)據(jù)使用AlphaSelection

def testFunc8(savepath='Results/bikeshare_RidgeCV_AlphaSelection.png'):
 '''
 基于共享單車數(shù)據(jù)使用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)

結(jié)果如下:

基于共享單車數(shù)據(jù)繪制預(yù)測(cè)錯(cuò)誤圖

def testFunc9(savepath='Results/bikeshare_Ridge_PredictionError.png'):
 '''
 基于共享單車數(shù)據(jù)繪制預(yù)測(cè)錯(cuò)誤圖
 '''
 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

結(jié)果如下:

今天先記錄到這里,之后有時(shí)間繼續(xù)更新學(xué)習(xí)!

總結(jié)

以上所述是小編給大家介紹的Python可視化神器Yellowbrick使用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Python命名空間詳解

    Python命名空間詳解

    這篇文章主要介紹了Python命名空間詳解,非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • 讓代碼變得更易維護(hù)的7個(gè)Python庫

    讓代碼變得更易維護(hù)的7個(gè)Python庫

    今天小編就為大家分享一篇關(guān)于讓代碼變得更易維護(hù)的7個(gè)Python庫,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Python函數(shù)參數(shù)中的*與**運(yùn)算符

    Python函數(shù)參數(shù)中的*與**運(yùn)算符

    這篇文章主要介紹了Python函數(shù)參數(shù)中的*與**運(yùn)算符,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python基礎(chǔ)教程之匿名函數(shù)lambda

    python基礎(chǔ)教程之匿名函數(shù)lambda

    這篇文章主要介紹了 python基礎(chǔ)教程之匿名函數(shù)lambda的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Python查找字符串中重復(fù)字符的多種方法

    Python查找字符串中重復(fù)字符的多種方法

    在處理字符串時(shí),我們經(jīng)常需要分析字符的頻率,找出那些出現(xiàn)次數(shù)超過一次的重復(fù)字符,這在數(shù)據(jù)處理、文本分析、密碼學(xué)等多個(gè)領(lǐng)域都有廣泛的應(yīng)用,本文介紹了Python查找字符串中重復(fù)字符的多種方法,需要的朋友可以參考下
    2024-09-09
  • Python中幾種導(dǎo)入模塊的方式總結(jié)

    Python中幾種導(dǎo)入模塊的方式總結(jié)

    下面小編就為大家?guī)硪黄狿ython中幾種導(dǎo)入模塊的方式總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • python爬取盤搜的有效鏈接實(shí)現(xiàn)代碼

    python爬取盤搜的有效鏈接實(shí)現(xiàn)代碼

    這篇文章主要介紹了python爬取盤搜的有效鏈接,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹

    python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹

    這篇文章主要介紹了python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹,需要的朋友可以參考下
    2019-10-10
  • python實(shí)現(xiàn)記事本功能

    python實(shí)現(xiàn)記事本功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)記事本功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 安裝多個(gè)版本的TensorFlow的方法步驟

    安裝多個(gè)版本的TensorFlow的方法步驟

    這篇文章主要介紹了安裝多個(gè)版本的TensorFlow的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論

华亭县| 济源市| 木兰县| 利辛县| 桃园市| 延吉市| 错那县| 高雄市| 关岭| 什邡市| 吉木乃县| 壤塘县| 安顺市| 乌鲁木齐市| 托里县| 新源县| 勐海县| 呈贡县| 香港| 永城市| 共和县| 长治县| 浪卡子县| 彩票| 成安县| 荣昌县| 呼玛县| 读书| 陕西省| 滕州市| 尼勒克县| 平顶山市| 平邑县| 绥芬河市| 美姑县| 苏州市| 宁南县| 精河县| 辽阳县| 广昌县| 三台县|