PyCon2018:兩款最新ML資料視覺化庫:Altair和Yellowbrick

金正皓發表於2018-06-08

原作者David 9

原文發於作者個人部落格,點選檢視原文,掘金已獲得轉載授權。再次感謝作者。


PyCon2018兩款最新ML資料視覺化庫:Altair和Yellowbrick,函數語言程式設計的視覺化庫和scikit-learn增強視覺化庫

資料科學的視覺化庫和深度學習框架庫一樣,雖然層出不窮,但是大致分為兩種:

一種是通用視覺化庫任何類似json schema的靜態資料都可以用它作圖如: Pandas, Seaborn , ggplot, Bokeh, pygal, Plotly

另一種是和框架耦合較高的視覺化庫,如TensorFlow的TensorBoard,scikit-learn增強視覺化庫Yellowbrick

對於第一種通用庫,方便簡潔、易用的趨勢一直沒有改變。這屆PyCon2018上的talk:Exploratory Data Visualization with Vega, Vega-Lite, and Altair 就介紹了Altair這種新的函數語言程式設計視覺化庫,其簡潔程度,只要拿到panda的dataframe資料,多加一句宣告程式碼,就可以進行視覺化了:

import altair as alt# to use with Jupyter notebook (not JupyterLab) run the following# alt.renderers.enable('notebook')# load a simple dataset as a pandas DataFramefrom vega_datasets import datacars = data.cars()# 這裡是宣告程式碼,是不是有函數語言程式設計的味道 ?alt.Chart(cars).mark_point().encode(    x='Horsepower',    y='Miles_per_Gallon',    color='Origin',)複製程式碼

Altair例程

如果要把點的樣式改成線的樣式,只需把函式mark_point()改成mark_line()即可:

    alt.Chart(cars).mark_line().encode(    x='Horsepower',    y='Miles_per_Gallon',    color='Origin',)複製程式碼

這裡可以注意到無論你的car資料集有多少特徵,視覺化時你需要什麼特徵,在encode函式中宣告就可以了。當然,Altair API還有許多便捷的地方,許多例項的jupyterNOTEBOOK例子可以先試試

而對於和scikit-learn耦合較高的視覺化庫Yellowbrick, 甚至在視覺化的過程中,已經融入的訓練過程:

    from sklearn.linear_model import LogisticRegressionfrom yellowbrick.classifier import ROCAUC# 初始化分類模型和視覺化logistic = LogisticRegression()visualizer = ROCAUC(logistic)visualizer.fit(X_train, y_train)  # visualizer物件其實就是estimater類的繼承,可以進行fit訓練visualizer.score(X_test, y_test)  # 在測試集上得分g = visualizer.poof()             # 獲得ROCAUC的分析圖複製程式碼

如上述程式碼,在logistic迴歸模型訓練完畢就立即輸出分析圖

來自:http://www.scikit-yb.org/en/latest/api/classifier/rocauc.html

同樣,PCA分析也一樣,視覺化和訓練程式碼是耦合的:

from yellowbrick.features.pca import PCADecompositionvisualizer = PCADecomposition(scale=True, center=False, color=y)visualizer.fit_transform(X,y)visualizer.poof()複製程式碼

上述程式碼直接實現了兩維的PCA視覺化:

參考文獻:

  1. www.scikit-yb.org/en/latest/
  2. github.com/altair-viz/…

本文采用署名 – 非商業性使用 – 禁止演繹 3.0 中國大陸許可協議進行許可。著作權屬於“David 9的部落格”原創,如需轉載,請聯絡微信: david9ml,或郵箱:yanchao727@gmail.com

或直接掃二維碼:

PyCon2018:兩款最新ML資料視覺化庫:Altair和Yellowbrick


相關文章