業界 | 除了R、Python,還有這些重要的資料科學工具
這年頭,如果你不會點兒R或者Python,你都不好意思說你是混資料圈的。
在你向一些大神請教的時候,他可能也會推薦你學習這兩個高階程式語言,然後順便在推薦你瞭解一下SQL以及Math。如果講究點的,可能還會傳授你一些Spark、AWS/雲端計算的經驗。
嗯!差不多就這些了~
當前主流資料科學領域用的工具就是這些了。
但是,如果你想成為一個數據科學“英雄”,僅僅掌握一些主流的東西是不夠的。
今天就給你推薦幾個好用到爆的小工具~~
Linux
Linux名字應該是如雷貫耳了吧!但很多資料科學家對它的命令列並不熟悉。Bash指令碼是電腦科學中最基本的工具,並且資料科學中很大一部分需要程式設計,因此這項技能至關重要。
我的Linux啟動小企鵝
幾乎可以肯定的是,你的程式碼會在linux上開發和部署,使用命令列完成一些工作是非常酷的。與資料科學一樣,Python也無法獨立於環境工作,並且你必須通過一些命令列介面來處理包、框架管理、環境變數、訪問路徑($PATH)等等。
Git
Git聽名字,你也應該不陌生。大多數資料科學家對git似懂非懂。由於資料科學定義模糊,很多人都不遵循良好的軟體開發實踐。例如,有人甚至很長一段時間都不知道單元測試。
當你在團隊中編碼時,你就會知道git是很重要的。如果團隊成員提交的程式碼發生衝突,你得知道如何處理。或者你需要挑選部分程式碼修復bug、更新……將程式碼提交到開源或私有的repo(如Github)時,你也可以使用Coveralls之類的東西進行程式碼測試,並且還有其他框架幫助你在提交時方便地將程式碼部署到生產中。
REST APIs
現在,你已經訓練好了一個模型——然後該怎麼辦?沒有人想看你的Jupyter notebook或者某種蹩腳的互動式shell指令碼。此外,除非你在共享環境中進行訓練,否則你的模型只能自己使用。僅僅擁有模型是不夠的,而這正是大多資料科學家遇到困難的地方。
要從模型中獲得實際的預測結果,最好通過標準API呼叫或開發可用的應用程式。像Amazon SageMaker這樣的服務已經得到普及,因為它可以讓你的模型和可用程式無縫銜接。
如果你功力深厚,當然你也可以使用Python中的Flask框架自己構建一個。
此外,在後端有許多Python包可進行API呼叫,因此瞭解API是什麼以及如何在開發中使用API,這會讓你有點兒與眾不同。
Docker & Kubernetes
這兩個工具棒極了。docker允許使用者擁有一個生產就緒(production ready)的應用環境,而無需為每個在其上執行的單個服務集中配置生產伺服器。與需要安裝完整作業系統的虛擬機器不同,docker容器在與主機相同的核心上執行,並且輕量得多。
想象一下像Python的venv這樣的docker容器,有更多功能。 更高階的機器學習庫(如Google的Tensorflow)需要特定的配置,而這些配置很難在某些主機上進行故障排除。因此,docker經常與Tensorflow一起使用,以確保用於模型訓練的環境是開發就緒(development-ready)的。
容器化且可擴充套件的應用程式
隨著市場趨向於更多的微型服務和容器化應用,docker因其強大的功能越來越受歡迎。Docker不僅適用於訓練模型,也適用於部署。將模型視作服務,你就可以將它們容器化,以便它們具有執行所需的環境,然後可以與應用程式的其他服務無縫互動。這樣,你的模型具有可擴充套件性同時也具有了便攜性。
Kubernetes(K8s)是一個在多主機上進行規模管理和部署容器化服務的平臺。本質上,這意味著您可以輕鬆地通過跨水平可擴充套件叢集,管理和部署docker容器。
由於谷歌正在使用Kubernetes來管理他們的Tensorflow容器(還有其他東西),他們進一步開發了Kubeflow,一個在Kubernetes上用於訓練和部署模型的開源工作流。容器化的開發和生產正不斷與機器學習和資料科學相結合,我相信這些技能對於2019年的資料科學家來說將是重要的。
Apache Airflow
Airflow平臺雖然很小眾,但是卻很酷。Airflow是一個Python平臺,可以使用有向無環圖(DAG)程式化地建立、排程和監控工作流。
DAG(有向無環圖)
這基本上只是意味著你可以隨時根據需要輕鬆地設定Python或bash指令碼。與可自定義但不太方便的定時任務(cron job)相比,Airflow能讓你在使用者友好的GUI中控制排程作業。
Elasticsearch
Elasticsearch同樣比較小眾。這個有點特別,取決於你是否有搜尋/ NLP用例。但是,我可以告訴你在財富50強公司工作,我們有大量的搜尋用例,這是我們堆疊中最重要的框架之一。與在Python中從頭開始構建某些東西相反,Elastic通過Python客戶端便捷地提供了所需的一切。
Elasticsearch讓你可以輕鬆地以容錯和可擴充套件的方式索引和搜尋文件。你擁有的資料越多,啟動的節點就越多,查詢執行的速度就越快。Elastic使用Okapi BM25演算法,該演算法在功能上非常類似於TF-IDF(詞頻-逆向檔案頻率,Elastic以前使用的演算法)。它有一大堆花裡胡哨的東西,甚至支援多語言分析器等定製外掛。
Elasticsearch index
由於它本質上是比較查詢到的與索引中文件的相似性,因此它也可用於比較文件間的相似性。強烈建議先檢視一下Elasticsearch是否提供了所需的一切,而不是直接從scikit-learn包中匯入TF-IDF使用。
Homebrew(mac系統
Ubuntu有apt-get,Redhat有yum,而Windows 10甚至有OneGet 。這些包管理器通過命令列介面(CLI)安裝、管理依賴項,並自動更新路徑($PATH)。雖然mac系統不能開箱即用,但Homebrew可以通過終端命令輕易安裝。
彌補了OS系統無包管理的缺陷
不能在本地安裝Apache Spark的小夥伴。可以訪問官網,下載後解壓,並將spark-shell命令新增到$ PATH中,或者在終端輸入brew install apache-spark(注意:要想使用spark,你需要安裝scala和java)。
原文釋出時間為:2018-11-21
本文作者:蔣曄、小七、蔣寶尚
本文來自雲棲社群合作伙伴“ OTAxMDQzNQ==&mid=2650617039&idx=1&sn=56ac9875538fdf17429b484016774847&chksm=87b39b23b0c412351b85618755b93292952421b5caac850b08dcf16445e3690aefa58432437f&scene=0&xtrack=1#rd" target="_blank" rel="nofollow,noindex">CDA資料分析師 ”,瞭解相關資訊可以關注“ CDA資料分析師 ”。