機器學習中,可視化工具用於幫助理解數據分佈、模型性能、訓練過程以及結果分析。以下是一些常用的可視化工具及其詳細講解


一、Matplotlib

作用:基礎的繪圖庫,適用於各種靜態、動態和交互式圖表。

主要功能

  • 繪製折線圖、柱狀圖、散點圖、直方圖等
  • 自定義圖表樣式、座標軸、圖例等

示例

pythonimport matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y, marker='o')
plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('示例折線圖')
plt.show()

二、Seaborn

作用:基於 Matplotlib 的高級數據可視化庫,更簡潔、美觀,適合統計圖表。

主要功能

  • 繪製分佈圖、熱力圖、箱線圖、散點圖等
  • 與 Pandas 數據框無縫集成

示例

pythonimport seaborn as sns
import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]})
sns.scatterplot(x='x', y='y', data=df)
plt.show()

三、Plotly

作用:交互式可視化工具,適合在 Jupyter Notebook 或網頁中使用。

主要功能

  • 交互式圖表(可縮放、懸停查看數據)
  • 支持 3D 圖表、熱力圖、動態圖表

示例

pythonimport plotly.express as px

df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species')
fig.show()

四、Scikit-learn 的可視化工具

作用:提供模型評估和特徵分析的可視化功能。

主要功能

  • 混淆矩陣(Confusion Matrix)
  • ROC 曲線
  • 特徵重要性圖
  • 學習曲線

示例

pythonfrom sklearn.metrics import plot_confusion_matrix
import matplotlib.pyplot as plt

plot_confusion_matrix(model, X_test, y_test)
plt.show()

五、TensorBoard(深度學習可視化)

作用:用於可視化 TensorFlow 和 PyTorch 模型的訓練過程。

主要功能

  • 可視化損失和準確率曲線
  • 查看模型結構
  • 分析權重分佈

使用方式

bashtensorboard --logdir=./logs

六、PyTorch 和 TensorFlow 的可視化工具

作用:用於可視化神經網絡結構和訓練過程。

PyTorch

  • 使用 torchviz 可視化計算圖
  • 使用 TensorBoard 記錄訓練過程

TensorFlow

  • 使用 TensorBoard 可視化模型結構和訓練日誌

七、其他工具

  • Bokeh:交互式可視化庫,適合大型數據集
  • VisPy:用於高性能數據可視化(適合科學計算)
  • Altair:基於 Python 的聲明式可視化庫,適合數據探索

八、常見可視化類型

類型

用途

工具

數據分佈圖

分析數據特徵

Matplotlib, Seaborn

特徵相關性圖

理解特徵間關係

Seaborn, Plotly

模型評估圖

分析模型性能

Scikit-learn, Plotly

損失/準確率曲線

觀察訓練過程

Matplotlib, TensorBoard

混淆矩陣

分類任務評估

Scikit-learn

特徵重要性圖

理解模型決策依據

Scikit-learn, SHAP, LIME