機器學習 - Python 庫



Python 庫是程式碼和函式的集合,可以在程式中用於執行特定任務。它們通常用於簡化程式設計過程,尤其是在任務重複且複雜的情況下。

如您所知,機器學習是一個跨學科領域,其中每個演算法都是透過結合程式設計和數學開發的。與其使用數學和統計公式手動編碼完整的演算法,不如使用庫來簡化任務。

Python 是最流行的程式語言,尤其是在實現機器學習方面,因為它簡單易用,擁有豐富的庫集合。

以下是一些流行的 Python 機器學習庫:

讓我們詳細討論上面提到的每個 Python 庫。

NumPy

NumPy 是一個用於科學計算的通用陣列和矩陣處理包,用於執行各種數學運算,如線性代數、傅立葉變換等。它提供了一個高效能的多維陣列物件和工具,用於操作矩陣以改進機器學習演算法。它是 Python 機器學習生態系統中的一個關鍵元件,因為它為許多機器學習演算法所需的基礎資料結構和數值運算提供了支援。

使用 NumPy,我們可以執行以下重要操作:

  • 陣列上的數學和邏輯運算。

  • 傅立葉變換

  • 與線性代數相關的運算。

我們還可以將 NumPy 視為 MATLAB 的替代品,因為 NumPy 通常與 Scipy(科學 Python)和 Mat-plotlib(繪相簿)一起使用。

安裝和執行

如果您使用的是 Anaconda 發行版,則無需單獨安裝 NumPy,因為它已隨發行版一起安裝。您只需使用以下方法將軟體包匯入到您的 Python 指令碼中:

import numpy as np

另一方面,如果您使用的是標準 Python 發行版,則可以使用流行的 Python 軟體包安裝程式 pip 安裝 NumPy。

pip install numpy

示例

以下是一個簡單的示例,使用 NumPy 建立一個一維陣列:

import numpy as np
data = np.array([1,2,3,4,5])
print(data)
print(len(data))
print(type(data))
print(data.shape)

輸出

上面的 Python 示例程式碼將產生以下結果:

[1 2 3 4 5]
5
<class 'numpy.ndarray'>
(5,)

Pandas

Pandas 是一個功能強大的資料操作和分析庫。此庫並非直接用於機器學習演算法,而是在之前的步驟中使用,即用於資料準備。它基於兩個資料結構:Series(一維)和 DataFrames(二維)。這使得它能夠處理各個領域(如金融、商業和醫療保健)中的各種典型用例。

在資料處理中,藉助 Pandas,我們可以完成以下五個步驟:

  • 載入
  • 準備
  • 操作
  • 建模
  • 分析

Pandas中的資料表示

Pandas 中的所有資料表示都是藉助以下三種資料結構完成的:

Series - 它是一個帶軸標籤的一維 ndarray,這意味著它類似於一個包含同類資料的簡單陣列。例如,以下序列是整數 1、5、10、15、24、25... 的集合。

1 5 10 15 24 25 28 36 40 89

DataFrame - 它是最有用的資料結構,用於 Pandas 中幾乎所有型別的資料表示和操作。它是一個二維資料結構,可以包含異構資料。通常,表格資料使用 DataFrame 表示。例如,下表顯示了學生的資料,包括他們的姓名和學號、年齡和性別:

姓名 學號 年齡 性別
Aarav 1 15 男性
Harshit 2 14 男性
Kanika 3 16 女性
Mayank 4 15 男性

Panel - 它是一個三維資料結構,包含異構資料。很難用圖形表示 Panel,但可以將其說明為 DataFrame 的容器。

下表提供了上面提到的 Pandas 中使用的資料結構的維度和描述:

資料結構 維度 描述
Series 1-D 大小不可變,一維同類資料
DataFrame 2-D 大小可變,表格形式的異構資料
Panel 3-D 大小可變的陣列,DataFrame 的容器。

我們可以將這些資料結構理解為,更高維的資料結構是低維資料結構的容器。

安裝和執行

如果您使用的是 Anaconda 發行版,則無需單獨安裝 Pandas,因為它已隨發行版一起安裝。您只需使用以下方法將軟體包匯入到您的 Python 指令碼中:

import pandas as pd

另一方面,如果您使用的是標準 Python 發行版,則可以使用流行的 Python 軟體包安裝程式 pip 安裝 Pandas。

pip install pandas

安裝 Pandas 後,您可以將其匯入到 Python 指令碼中,就像上面一樣。

示例

以下是如何使用 Pandas 從 ndarray 建立一個序列的示例:

import pandas as pd
import numpy as np
data = np.array(['g','a','u','r','a','v'])
s = pd.Series(data)
print (s)

輸出

上面的示例程式碼將產生以下結果:

0    g
1    a
2    u
3    r
4    a
5    v
dtype: object

SciPy

SciPy 是一個開源庫,用於對大型資料集進行科學計算。它易於使用,並且可以快速執行資料視覺化和操作任務。它包含用於演算法最佳化以及執行積分、線性代數或訊號處理等操作的模組。SciPy 建立在 NumPy 之上,但透過執行數值演算法和代數函式等複雜任務擴充套件了其功能。

安裝和執行

如果您使用的是 Anaconda 發行版,則無需單獨安裝 SciPy,因為它已隨其一起安裝。您只需要在 Python 指令碼中使用該包即可。例如,使用以下指令碼行,我們從 scipy 中匯入 linalg 子模組 -

from scipy import linalg

另一方面,如果您使用的是標準 Python 發行版並且擁有 NumPy,則可以使用流行的 Python 包安裝程式 pip 安裝 SciPy。

pip install scipy

示例

以下是如何建立二維陣列(矩陣)並查詢矩陣的逆的示例。

import numpy as np
import scipy
from scipy import linalg
A= np.array([[1,2],[3,4]])
print(linalg.inv(A))

輸出

上面的 Python 示例程式碼將產生以下結果:

[[-2.   1. ]
 [ 1.5 -0.5]]

Scikit-learn

Scikit-learn 是一個流行的開源庫,建立在 NumPy 和 SciPy 之上,用於實現機器學習模型和統計建模。它支援監督學習和無監督學習。它提供了各種工具來實現資料預處理、特徵選擇、模型選擇、模型評估以及許多其他任務。

以下是使 Scikit-learn 如此有用的幾個功能 -

  • 它建立在 NumPy、SciPy 和 Matplotlib 之上。

  • 它是開源的,可以在 BSD 許可下重複使用。

  • 每個人都可以訪問它,並且可以在各種情況下重複使用。

  • 它可以幫助實現各種機器學習演算法,涵蓋了 ML 的主要領域,如分類、聚類、迴歸、降維、模型選擇等。

安裝和執行

如果您使用的是 Anaconda 發行版,則無需單獨安裝 Scikit-learn,因為它已隨其一起安裝。您只需要在 Python 指令碼中使用該包即可。例如,使用以下指令碼行,我們從 Scikit-learn 中匯入乳腺癌患者資料集 -

from sklearn.datasets import load_breast_cancer

另一方面,如果您使用的是標準 Python 發行版並且擁有 NumPy 和 SciPy,則可以使用流行的 Python 包安裝程式 pip 安裝 Scikit-learn。

pip install scikit-learn

安裝 Scikit-learn 後,您可以在 Python 指令碼中像上面一樣使用它。

示例

以下是載入乳腺癌資料集的示例 -

from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
print(data.target[[10, 50, 85]])
print(list(data.target_names))

輸出

以上 Python 示例程式碼將產生以下結果 -

[0 1 0]
['malignant', 'benign']

要更詳細地研究 Scikit-learn,您可以訪問連結 www.tutorialspoint.com/scikit_learn/index.htm

PyTorch

PyTorch 是一個基於 Torch 庫的開源 Python 庫,通常用於開發深度神經網路。它基於直觀的 Python,並且可以動態定義計算圖。對於需要靈活且強大的深度學習框架的研究人員和開發人員來說,PyTorch 特別有用。

安裝和執行

對於 Windows 作業系統上的 Python 3.8 或更高版本和 CPU 平臺,您可以使用以下命令安裝 PyTorch(torch、torchvision 和 torchaudio)

pip3 install torch torchvision torchaudio

您可以參考以下連結,瞭解使用更多選項安裝 PyTorch 的方法

https://pytorch.org/get-started/locally/

要匯入 PyTorch,請使用以下命令 -

import torch

安裝 PyTorch 後,您可以像上面一樣將其匯入 Python 指令碼中。

示例

以下是如何建立 NumPy 陣列並將其轉換為 PyTorch 張量的示例 -

import numpy as np
import torch
x = np.ones([3,4])
y = torch.from_numpy(x)
print(y)

輸出

上面的示例程式碼將產生以下結果:

tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]], dtype=torch.float64)

TensorFlow

TensorFlow 是 Google 開發的最知名的軟體庫之一,用於實現機器學習和深度學習任務。使用它可以更輕鬆地建立計算圖並在各種硬體平臺上高效執行。它廣泛用於開發自然語言處理、影像識別和手寫識別等任務。

安裝和執行

對於 Windows 作業系統上的 CPU 平臺,您可以使用以下命令使用 pip 安裝 TensorFlow -

pip install tensorflow

您可以參考以下連結,瞭解使用更多選項安裝 TensorFlow 的方法 -

https://www.tensorflow.org/install/pip

要匯入 TensorFlow,請使用以下命令 -

import tensorflow as tf

安裝 TensorFlow 後,您可以像上面一樣將其匯入 Python 指令碼中。

示例

以下是如何使用 TensorFlow 建立張量資料或物件的示例 -

import tensorflow as tf
data = tf.constant([[2,1],[4,6]])
print(data)

輸出

上面的示例程式碼將產生以下結果:

tf.Tensor(
[[2 1]
 [4 6]], shape=(2, 2), dtype=int32)

Keras

Keras 是一個高階神經網路庫,用於建立深度學習模型。它執行在 TensorFlow、CNTK 或 Theano 之上。它提供了一個簡單直觀的 API 用於構建和訓練深度學習模型,使其成為初學者和研究人員的絕佳選擇。Keras 是一個流行的庫,因為它允許輕鬆快速地進行原型設計。

安裝和執行

對於 Windows 作業系統上的 CPU 平臺,請使用以下命令使用 pip 安裝 Keras -

pip install keras

要匯入 TensorFlow,請使用以下命令 -

import keras

安裝 Keras 後,您可以像上面一樣將其匯入 Python 指令碼中。

示例

在下面的示例中,我們從 Keras 中匯入 CIFAR-10 資料集,並列印訓練資料和測試資料的形狀 -

import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
print(y_test.shape)

輸出

上面的示例程式碼將產生以下結果:

(50000, 32, 32, 3)
(10000, 32, 32, 3)
(50000, 1)
(10000, 1)

Matplotlib

Matplotlib 是一個流行的繪相簿,通常用於資料視覺化,建立圖形、繪圖、直方圖和條形圖。它提供了用於資料分析、探索和演示任務的工具和函式。

安裝和執行

我們可以使用以下指令碼行使用 pip 安裝 Matplotlib -

pip install matplotlib

大多數 matplotlib 實用程式位於 pyplot 子模組下。我們可以使用以下指令碼行從 Matplot 中匯入 pyplot -

import matplotlib.pyplot as plt

安裝 Matplotlib 後,您可以像上面一樣將其匯入 Python 指令碼中。

示例

在下面的示例中,我們使用 Matplotlib 繪製一條直線 -

import matplotlib.pyplot as plt
plt.plot([1,2,3],[1,2,3])
plt.show()

Seaborn

Seaborn 是一個基於 Matplotlib 並與 Pandas 整合的開源 Python 庫。它用於製作易於呈現且資訊豐富的統計圖形,使其成為商業和營銷分析的理想選擇。這個庫可以幫助您學習和探索資料。

安裝和執行

我們可以使用以下指令碼行使用 pip 安裝 Seaborn -

pip install seaborn

我們可以使用以下指令碼行將 Seaborn 匯入 Python 指令碼中 -

import seaborn as sns

安裝 Seaborn 後,您可以像上面一樣將其匯入 Python 指令碼中。

OpenCV

Open Source Computer Vision Library,簡稱OpenCV 是一個用於計算機視覺和影像處理任務的 Python 庫。此庫用於識別影像模式和資料中的各種特徵,還可以與 NumPy 整合以處理 openCV 陣列結構。

NLTK

Natural Language ToolKit,簡稱 NLTK 是一個 Python 程式設計環境,通常用於開發自然語言處理任務。它包含易於使用的介面,如 WordNet、用於分類、標記化、解析和語義推理的測試處理庫。

spaCy

spaCy 是一個免費的開源 Python 庫。它提供用於快速有效地執行自然語言處理中高階任務的功能。單詞標記化和詞性標註是該庫有效執行的兩個任務。

XGBoost、LightGBM 和 Gensim 是 Python 中許多其他用於機器學習的工具和框架。學習 Python 庫將有助於理解機器學習的生態系統,並有助於構建、訓練和部署模型。

廣告