新智元AI WORLD 2018世界人工智慧峰會
今日啟幕
新智元2018年9月20日在北京國家會議中心舉辦AI WORLD 2018世界人工智慧峰會,歡迎觀看現場直播,選擇有很多哦~
愛奇藝:https://live.iqiyi.com/s/19rqw411mv.html
新浪科技:http://video.sina.com.cn/l/p/1724373.html
騰訊科技客戶端:http://view.inews.1900
騰訊科技 PC 端:http://v./preview.html
新智元推薦
編譯:優達學員 - kevin
原作:Mantra Malhotra(源文地址見下)
【新智元導讀】Python 超越許多其他程式語言,成為機器學習領域中最熱門最常用的程式語言之一。Python 在眾多開發者中如此受追捧的原因之一便是其擁有大量的與機器學習相關的開源框架以及工具庫,本文介紹了其中最受歡迎的10大Python庫。
原文:https://hackernoon.com/top-10-libraries-in-python-to-implement-machine-learning-12602cf5dc61
隨著人工智慧技術的發展與普及,Python 超越了許多其他程式語言,成為了機器學習領域中最熱門最常用的程式語言之一。有許多原因致使 Python 在眾多開發者中如此受追捧,其中之一便是其擁有大量的與機器學習相關的開源框架以及工具庫。根據 builtwith.com 的數據顯示,45% 的科技公司都傾向於使用 Python 作為人工智慧與機器學習領域的程式語言。
使 Python 如此受歡迎主要由於:
Python 從設計之初就是為效率而生,以使項目從開發到部署再在運維都能保持較高的生產力; 坊間有大量的基於 Python 的開源框架及工具庫; Python 易於上手,可以說是編程小白的福音; 相比起 C、Java、C++ 來講,Python 的語法更簡單,更高級,只需要更少行數的代碼便能實現其他程式語言同樣的功能; Python 的跨平臺能力; 正是由於 Python 簡單易用以及高開發效率,吸引了大量的開發者為其創建更多新的機器學習工具庫;而又因為大量的機器學習工具庫的出現,使得 Python 在機器學習領域變得如此流行。
下面我們就來探索一下機器學習領域中最受歡迎的十大框架或工具庫:
Tensorflow
如果你正在使用 Python 來從事機器學習項目,那麼你一定聽說過其中一個著名的框架——Tensorflow。Tensorflow 框架主要由 Google 大腦團隊開發,主要用於深度學習計算。幾乎所有的 Google 機器學習應用都使用了它。比如在使用 Google 語音搜索或者 Google 相冊時,你其實都是在間接地在使用 Tensorflow 所構建的模型。
Tensorflow 把神經網絡運算抽象成運算圖(Graph),一個運算圖中包含了大量的張量(Tensor)運算。而張量實際上就是 N 維數據的集合。神經網絡運算的本質是通過張量運算來擬合輸入張量與輸出張量之間的映射關係。
並行運算是 Tensorflow 的主要優勢之一。也就是說你可以通過代碼設置來分配你的 CPU、GPU 計算資源來實現並行化的圖運算。
Tensorflow 框架中所有的工具庫都是用 C 或者 C++ 來編寫,但它提供了用 Python 來編寫的接口封裝。事實上,你用 Python 編寫的神經網絡模型最終會調用基於 C 和 C++ 編寫的 Tensorflow 內核來執行運算。
Tensorflow 使用了類似 XLA(Accelerated Linear Algebra / 加速線性代數)等技術對運算過程進行過優化,以保證其能夠靈活地調用計算資源的同時保持高效的運算速度。
Keras
Keras 被認為是最酷的 Python 深度學習庫之一。如果你是深度學習開發方面的新手,那麼非常建議你使用它。它提供了非常簡明的機制來表達神經網絡結構。它也提供了許多非常棒的工具用於神經網絡模型的編譯、數據的處理、以及網絡結構的可視化等等。
Keras 本質上是對 Tensorflow、Theano 等基礎框架作進一步的封裝,以提供統一的 API 來簡化神經網絡的構建與訓練。如果你打算以 Tensorflow 作為後端基礎框架,則必須遵循以下架構圖:
再有,Keras 提供了許多預處理的數據集,比如 MNIST,和預訓練的模型,比如 VGG、Inception、 ResNet 等等。
Theano
Theano 是一個用於多維數組計算的 Python 運算框架。Theano 的工作原理與 Tensorflow 相似,但要比 Tensorflow 低效。因此它不適用於生產環境。
此外,Theano 還可以用於與 Tensorflow 類似的分布式或並行環境。
PyTorch
PyTorch 是最大的深度學習庫,允許開發人員通過加速 GPU 執行張量計算,創建動態計算圖,並自動計算梯度。 除此之外,PyTorch 還提供豐富的 API,用於解決與神經網絡相關的應用問題。
這個深度學習庫基於 Torch,這是一個用 C 語言實現的開源機器庫,以 Lua 語言作了封裝。與 Tensorflow 的區別在於 Tensorflow 用的是 「靜態計算圖」 的概念,而 PyTorch 用的是 「動態計算圖」 的概念。最直觀的感受是,用 PyTorch 來編寫的神經網絡模型代碼更像常見的 Python 代碼。PyTorch 是在 2017 年推出的,自成立以來,該庫越來越受歡迎並吸引了越來越多的機器學習開發人員。
LightGBM
Gradient Boosting 是最好和最受歡迎的機器學習庫之一,它通過使用重新定義的基本模型和決策樹來幫助開發人員構建新算法。 因此,有專門的庫被設計用於快速有效地實現該方法。這些庫包括 LightGBM, XGBoost, 和 CatBoost。這些庫互為競爭對手,同樣使用了幾乎相同的思路來解決一個共同問題。這些庫都提供了高度可擴展,優化和快速的梯度增強實現,使其在機器學習開發人員中很受歡迎。 因為大多數機器學習開發人員通過使用這些算法贏得了機器學習競賽。
Numpy
Numpy 是公認的最受歡迎的 Python 機器學習庫之一。Tensorflow 以及其他的一些框架內部都使用了 Numpy 來對張量進行多種操作。數組接口是 Numpy 最佳及最重要的功能。這個接口可以用於把圖像、音頻、以及其他二進位流數據表示為多維實數數組。為了把這個庫應用到機器學習中,掌握 Numpy 的操作對於開發者而言意義重大。
Pandas
Pandas 是一個 Python 機器學習庫,它提供了各種高級的工具用於進行數據分析。其中一項了不起的功能便是它可以用一兩行代碼就能實現複雜的數據操作。Pandas 有許多內置的方法用於分組統計、合併數據、數據篩選、以及時間序列操作。所有的這些操作都有出色的性能表現。因此,使用 Pandas 通常用於數據挖掘任務。
SciPy
SciPy 是一個應用開發者與工程師們使用的機器學習庫。然而,你需要知道的是 SciPy 庫與 SciPy-Stack 的區別。SciPy 庫是 SciPy-Stack 的一個子集。SciPy 庫包含了優化器、線性代數、積分、插值、快速傅立葉變換、信號和圖像處理、統計等子模塊。所有子模塊中的函數都有完整的文檔說明,使用方便。
SciPy 庫的主要功能是基於 Numpy 來實現的,它的數組操作就是使用了 Numpy 的數組操作。
Scikits_Learn
Scikits-learn,又稱為 sk-learn,是一個基於 Numpy 與 SciPy 的 Python 庫。Sk-learn 被認為是用於處理複雜數據的最優秀的機器學習庫之一。它包含了大量用於實現傳統機器學習和數據挖掘任務的算法,比如數據降維、分類、回歸、聚類、以及模型選擇等。
隨著時間的發展,sk-learn 不斷演進。其中包括它加入了交叉驗證功能,提供了使用多個衡量指標的能力。許多的訓練方法都得到了一定的改進,如邏輯回歸、近鄰算法(KNN)等。
Eli5
通常,在機器學習任務中遇到的難題是模型的預測結果不準確。而用 Python 構建的 Eli5 機器學習庫可以幫助攻克這個難題。它為現有的機器學習框架提供了若干內置的支持,比如模型數據可視化、模型調試、算法跟蹤等,使得機器學習模型對於開發者而言不再是一個黑盒子。
Eli5 支持 sk-learn、XGBoost、LightGBM、lightning、sklearn-crfsuite 等機器學習框架或機器學習庫。
這些框架與庫都能夠實現以上提到的可視化、模型調試、算法跟蹤等任務。
結語:
以上便是機器學習專家們與數據科學家們普遍認可的十大機器學習框架或工具庫。所有的這些框架與庫都值得看一看、試一試。
當然,除了以上提到的框架與工具庫外,還有很多其他的機器學習庫也同樣值得關注。比如 Scikit-image 就是同屬於 Scikit 系列的另一個側重於圖像領域的工具庫。
希望本文能夠幫助你為你的項目選擇到合適的機器學習框架或工具庫吧。
原文:https://hackernoon.com/top-10-libraries-in-python-to-implement-machine-learning-12602cf5dc61
新智元AI WORLD 2018世界人工智慧峰會
今日啟幕
新智元於9月20日在北京國家會議中心舉辦AI WORLD 2018世界人工智慧峰會,邀請機器學習教父、CMU教授 Tom Mitchell,邁克思·泰格馬克,周志華,陶大程,陳怡然等AI領袖一起關注機器智能與人類命運。
新浪直播:
http://video.sina.com.cn/l/p/1724373.html
騰訊科技客戶端:
http://view.inews.1900
騰訊科技PC端:
http://v./preview.html
愛奇藝直播:
https://live.iqiyi.com/s/19rqw411mv.html