首頁  >  文章  >  科技週邊  >  流行的 Python 機器學習庫的趨勢和比較

流行的 Python 機器學習庫的趨勢和比較

WBOY
WBOY轉載
2023-04-12 23:52:121123瀏覽

Python 是全球最受歡迎的程式語言之一,擁有越來越多的程式庫和框架。看看最新的。

流行的 Python 機器學習庫的趨勢和比較

Python 是全球最受歡迎的程式語言之一,擁有越來越多的程式庫和框架來促進 AI 和ML 開發。 Python 中有超過 250 個函式庫,要知道哪個函式庫最適合您的專案並跟上所有這些函式庫帶來的技術變化和趨勢,可能會有點令人困惑。

以下是我使用過的流行的 Python 機器學習庫。我盡我所能根據哪些場景使用它們來對它們進行分類。除了這些之外,還有很多庫,但我無法談論我沒有使用過的庫,我認為這些是使用最多的庫。

NumPy

NumPy 是一個眾所周知 的通用陣列處理包,與其他機器學習包不同。對於 n 維數組(向量、矩陣和高階矩陣),NumPy 提供了高效能(本機編譯)支援和對各種操作的支援。它支援向量化操作,特別是,將 Python 表達式轉換為低階程式碼調度,隱式循環跨資料的不同子集。

NumPy 函數

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

函數的start 和stop 參數都是必要的,它們傳回的值均勻分佈在預定的時間間隔內。

  • numpy.repeat

使用 numpy.repeat(a, repeats, axis=None) 方法重複陣列的元素。第二個輸入重複指定重複次數。

  • numpy.random.randint

函數numpy.random.randint(low, high=None, size=None, dtype='l') 從[low, high] 傳回隨機整數。如果高參數不存在(無),則從範圍 [0, low] 中選擇隨機數。

為什麼 Numpy 如此受歡迎?

簡而言之,NumPy 最佳化和預編譯的 C 程式碼可以處理所有繁重的工作,使其比標準Python 陣列更快。

NumPy 使科學計算中經常使用的許多數學程式變得快速且易於使用。

Pandas

Pandas 正迅速成為使用最廣泛的 Python 資料分析函式庫,因為它支援處理「關係」和「標記」資料的快速、適應性和表達性資料結構。存在需要 Pandas 的實際和現實世界的 Python 資料分析問題。 Pandas 提供徹底優化和高度可靠的效能。只有 C 或 Python 用於純粹編寫後端程式碼。

一些Pandas功能

pd.read_csv, pd.read_excel

要提到的第一個函數是 read_csv 或 read_excel。這些功能已經提供了清晰的解釋。我利用它們將 CSV 或 Excel 檔案中的資料讀取為 pandas DataFrame 格式。

df = pd.read_csv("PlayerStat.csv")

.read csv() 函數也可以使用以下語法讀取.txt 檔案:

data = pd.read_csv(file.txt, sep=" ")
  • df.query()
##布林表達式可以過濾或查詢資料。我可以使用查詢函數作為字串套用篩選條件。與許多其他程式相比,它提供了更多的自由。

df.query("A > 4")

只傳回 A 大於 4 的行。

    df.iloc()
我將行和列索引作為參數傳遞給該函數,該函數傳回 DataFrame 的適當子集。

    df[‘’].dtypes
另一個非常基本且受歡迎的功能。在開始任何分析、視覺化或預測建模之前,必須知道變數的資料類型。使用這種技術,您可以獲得每一列的資料類型。

    df.dtypes
Pandas vs Vaex

Vaex Python 是Pandas 函式庫的替代品,它使用Out of Core Dataframe 更快地計算大量數據。為了查看和研究大型表格資料集,Vaex 是一個高效能 Python 模組,用於惰性核心外資料幀(類似於 Pandas)。每秒可以使用簡單的統計數據計算超過 10 億行。它支援各種可視化,允許大量互動式數據探索。

TensorFlow

TensorFlow 是由 Google建立和發布的用於快速數值計算的 Python 庫 。 Tensorflow 使用與 Theano 有所不同的語言和函數名稱,這可能會使從 Theano 的切換變得比它必須的更複雜。然而,Tensorflow 中的整個計算圖的運作方式與 Theano 中的類似,具有相同的優點和缺點。即使計算圖的修改對效能有重大影響,Tensorflow 的 eval 函數也只是讓觀察中間狀態變得稍微容易一些。與幾年前的 Theano 和 Caffe 相比,Tensorflow 是首選的深度學習技術。

TensorFlow 內建函數

    tf.zeros_like
該函數的輸出是一個與輸入張量具有相同類型和形狀但值為零的張量。

tensor = tf.constant( I[1, 2, 3], [4, 5, 6]])
tf.zeros_like( tensor) # [ [0, 0, 0], [0, 0,0]

從輸入影像建立黑色影像時,此功能可能會有所幫助。如果您希望直接定義表單,請使用 tf.zeros。如果您喜歡初始化 1 而不是 0,請使用 tf.ones_like。

    tfpad
用常數值在其周圍添加指定的填充以增加張量的維度。

  • tf.enable_eager_execution

这可以在您运行 TensorFlow 应用程序时帮助您。使用 Eager Execution 时,您不需要在会话中构建和运行图。这是有关急切执行的更多信息。

“Eager execution”必须是导入 TensorFlow 后的第一条语句。

TensorFlow 与 PyTorch

Torch 的 Python 实现 Pytorch 得到 Facebook 的支持。它通过提供即时图形编译与上述技术竞争,通过不将图形视为不同和不透明的对象,使 Pytorch 代码与周围的 Python 更加兼容。相反,有许多灵活的技术可以即时构建张量计算。此外,它表现良好。它具有强大的多 GPU 能力,很像 Tensorflow;然而,Tensorflow 仍然适用于更大规模的分布式系统。虽然 Pytorch 的 API 文档齐全,但 Tensorflow 或 Keras 的 API 更加完善。然而,Pytorch 在不影响性能的情况下在灵活性和可用性方面取得了胜利,这无疑迫使 Tensorflow 重新思考和调整。Tensorflow 最近受到 Pytorch 的严重挑战,

Keras

Keras 是一个开源软件库,为人工神经网络提供 Python 接口。由于 Keras 名义上是独立于引擎的,所以理论上 Keras 代码可以被重用,即使引擎需要因性能或其他因素而改变。它的缺点是,当您希望创建非常新颖或专业的架构时,通常需要在 Keras 层下使用 Tensorflow 或 Theano。这主要发生在您需要使用复杂的 NumPy 索引时,这对应于 Tensorflow 中的聚集/分散和 Theano 中的 set/inc 子张量。

Keras 函数

  • 评估与预测

在 Keras 中,evaluate() 和 predict() 都可用。这些技术可以利用 NumPy 数据集。当数据经过测试后,我完成了对结果的评估。我使用这些技术来评估我们的模型。

  • Keras 中的图层

每个 Keras 层都包含许多技术。这些层有助于构建、配置和训练数据。密集层有助于操作实现。我使用 flat 展平了输入。Dropout 启用输入丢失。我可以使用重塑工具重塑输出。我使用输入启动了一个 Keras 张量。

您可以获得中间层的输出。

一个相当简单的库是 Keras。它使得从层的中间层获取输出成为可能。您可以轻松地向现有层添加一个新层,以帮助您在中间获得输出。

Theano

Theano 是一个 Python 库和优化编译器,用于操作和评估数学表达式,尤其是矩阵值表达式。作为最古老和最成熟的,为 Theano 提供了优势和劣势。大多数用户请求的功能都已添加,因为它是旧版本。但是,其中一些实现有点过于复杂且难以使用,因为没有先例可循。该文档是可以通过但模棱两可的。由于没有简单的方法来检查中间计算,因此在 Theano 中让复杂的项目正常运行可能非常具有挑战性。他们通常使用调试器或通过查看计算图来进行调试。

Theano 函数

  • 声明变量

我用 dscalar 方法声明了一个十进制标量变量。当下面的语句运行时,它会在您的程序代码中添加一个名为 C 的变量。

C = tensor.dscalar()
  • 定义 Theano 函数

该函数接受两个参数,第一个是输入,第二个是函数的输出。根据下面的声明,第一个参数是一个包含 C 和 D 两项的数组。结果是一个标量单位,指定为 E。

f = theano.function([C,D], E)

结论

我见过一个高技能的 Python 程序员迅速掌握新库的精妙之处并了解如何使用它。但是,无论是初学者、中级还是专家,选择一种编程语言还是在这种情况下选择一个库而不是另一个库,很大程度上取决于您项目的目标和需求。

以上是流行的 Python 機器學習庫的趨勢和比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除