天天看點

Jupyter Notebook插件系列——懶人神器Visual Python

作者:新語資料故事彙

本期我們開啟一個新的系列——Jupyter Notebook插件。

我們知道Jupyter Notebook是一個非常棒的資料科學、分析和程式設計的環境。但它在有些方面也存在着功能欠缺或者體驗不夠舒服的問題。幸好,Notebook提供了插件拓展的功能,我們可以通過安裝一些優秀的插件,讓我們的工作效率提高不少!

在本系列中,小編将持續整理和介紹一些自己安裝和體驗過的Notebook優秀插件,幫助大家更好的使用Notebook。

本期我們先來體驗一款懶人神器——Visual Python,拯救不想寫代碼又想探索資料科學的你...

VisualPython簡介

VisualPython是一個開源項目,它是一款基于GUI(圖形界面)的Python代碼生成器,在Jupyter Notebook上作為擴充插件使用。

VisualPython的初衷是為那些在資料科學課程中為編碼而苦苦掙紮的學生而開發。

對于程式員而言,使用該工具可以儲存和重用使用者代碼;非程式員使用該工具,可以更輕松地學習Python語言,以最少的編碼技能探索和利用資料科學解決實際問題。

主要特征:

  • 基于圖形界面自動生成Python代碼
  • 可以按任務建立代碼塊,如資料處理任務、可視化任務等
  • 可以将分析過程導出為.vp檔案與他人共享

VisualPython簡略體驗

安裝VisualPython

  • 安裝程式包
pip install visualpython
           
  • 啟用VisualPython
visualpy install
           
  • 激活VisualPython插件 單擊Jupyter筆記本菜單欄右側的橙色方形按鈕
Jupyter Notebook插件系列——懶人神器Visual Python

探索VisualPython

  • 主界面功能一覽
Jupyter Notebook插件系列——懶人神器Visual Python
  • 邏輯流程控制
Jupyter Notebook插件系列——懶人神器Visual Python
  • 常用包的代碼(可以增加自定義的代碼片段)
  • 我們拿資料分析簡單體驗一下:
Jupyter Notebook插件系列——懶人神器Visual Python

資料分析的操作

Jupyter Notebook插件系列——懶人神器Visual Python

VisualPython自動生成代碼并運作

Machine Learning 子產品

接下來我們重點體驗一下VisualPython的Machine Learning子產品,它覆寫了sklearn包中常用的機器學習方法。

  • Data Sets:建立資料集,導入sklearn内置的機器學習資料集
  • Data Split:将資料集拆分測試集訓練集
  • Data Prep:特征工程
  • AutoML:自動機器學習
  • Regressor:回歸模型
  • Classifier:分類模型
  • Clustering:聚類模型
  • Dimension:降維
  • Fit/Predict:模型拟合/預測
  • Model Info:模型資訊
  • Evaluation:模型評估

「我們使用iris資料集簡單體驗一下VisualPython的Machine Learning元件」

  • 第一步,導入資料:導入鸢尾花(iris)資料集,并自動生成代碼
Jupyter Notebook插件系列——懶人神器Visual Python

使用VisualPython導入資料集

自動生成以下代碼:

# Visual Python: Machine Learning > Data Sets
from sklearn.datasets import load_iris
iris = load_iris()
# Create DataFrame
df_iris = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df_iris['target'] = iris.target
df_iris
           
  • 第二步,拆分資料集:将資料集拆分成測試集和訓練集
Jupyter Notebook插件系列——懶人神器Visual Python

拆分資料集

自動生成以下代碼:

# Visual Python: Machine Learning > Data Split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df_iris[['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']], df_iris['target'])
           
  • 第三步,初始化分類器:執行個體化LogisticRegression模型
Jupyter Notebook插件系列——懶人神器Visual Python

初始化模型

自動生成以下代碼:

# Visual Python: Machine Learning > Classifier
from sklearn.linear_model import LogisticRegression
class_model = LogisticRegression(multi_class="auto")
           
  • 第四步,模型拟合/預測:訓練模型并預測
Jupyter Notebook插件系列——懶人神器Visual Python

模型訓練/預測

自動生成以下代碼:

# Visual Python: Machine Learning > Fit/Predict
class_model.fit(X_train, y_train)
# Visual Python: Machine Learning > Fit/Predict
pred = class_model.predict(X_test)
pred
           
  • 第五步,模型評估&檢視模型混淆矩陣
Jupyter Notebook插件系列——懶人神器Visual Python

自動生成以下代碼:

# Visual Python: Machine Learning > Evaluation
from sklearn import metrics
# Visual Python: Machine Learning > Evaluation
# Confusion Matrix
pd.crosstab(y_test, pred, margins=True)
           

輸出的混淆矩陣:

Jupyter Notebook插件系列——懶人神器Visual Python

《新語資料故事彙,數說新語》 科普資料科學、講述資料故事,深層次挖掘資料價值。歡迎各位朋友投稿!

微信号|SnbDataStory

《新語資料故事彙,數說新語》