來源 / 大數據文摘(ID:BigDataDigest)

編譯 / 蔣曄、小七、蔣寶尚

這年頭,如果你不會點兒R或者Python,你都不好意思說你是混數據圈的。

在你向一些大神請教的時候,他可能也會推薦你學習這兩個高級編程語言,然後順便在推薦你瞭解一下SQL以及Math。如果講究點的,可能還會傳授你一些Spark、AWS/雲計算的經驗。

嗯!差不多就這些了~

當前主流數據科學領域用的工具就是這些了。

但是,如果你想成爲一個數據科學“英雄”,僅僅掌握一些主流的東西是不夠的。

今天呢,文摘菌就給你推薦幾個好用到爆的小工具~~

Linux

Linux名字應該是如雷貫耳了吧!但很多數據科學家對它的命令行並不熟悉。Bash腳本是計算機科學中基本的工具,並且數據科學中很大一部分需要編程,因此這項技能至關重要。

幾乎可以肯定的是,你的代碼會在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)程序化地創建、調度和監控工作流。

這基本上只是意味着你可以隨時根據需要輕鬆地設置Python或bash腳本。與可自定義但不太方便的定時任務(cron job)相比,Airflow能讓你在用戶友好的GUI中控制調度作業。

Elasticsearch

Elasticsearch同樣比較小衆。這個有點特別,取決於你是否有搜索/ NLP用例。但是,我可以告訴你在財富50強公司工作,我們有大量的搜索用例,這是我們堆棧中重要的框架。與在Python中從頭開始構建某些東西相反,Elastic通過Python客戶端便捷地提供了所需的。

Elasticsearch讓你可以輕鬆地以容錯和可擴展的方式索引和搜索文檔。你擁有的數據越多,啓動的節點就越多,查詢執行的速度就越快。Elastic使用Okapi BM25算法,該算法在功能上非常類似於TF-IDF(詞頻-逆向文件頻率,Elastic以前使用的算法)。它有一大堆花裏胡哨的東西,甚至支持多語言分析器等定製插件。

由於它本質上是比較查詢到的與索引中文檔的相似性,因此它也可用於比較文檔間的相似性。強烈建議先查看一下Elasticsearch是否提供了所需的,而不是直接從scikit-learn包中導入TF-IDF使用。

Homebrew(mac系統)

Ubuntu有apt-get,Redhat有yum,而Windows 10甚至有OneGet 。這些包管理器通過命令行界面(CLI)安裝、管理依賴項,並自動更新路徑($PATH)。雖然mac系統不能開箱即用,但Homebrew可以通過終端命令輕易安裝。

不能在本地安裝Apache Spark的小夥伴。可以訪問官網,下載後解壓,並將spark-shell命令添加到$ PATH中,或者在終端輸入brew install apache-spark(注意:要想使用spark,你需要安裝scala和java)。

官網

https://spark.apache.org/downloads.html

查看原文 >>
相關文章