開發者彈藥庫升級 推薦五個機器學習框架
業內知名數據科學網站 KDnuggests,昨日評選出了四月份“你不可忽視的五個機器學習項目”。
你可能沒聽過它們,但今天或許會考慮上手。至于那些不同生態、不同編程語言的工具——對于高手而言,即便沒有使用需求,借鑒它們的代碼執行也能為自己的產品開發帶來許多靈感。
1. Scikit-plot
一幫缺乏藝術細胞的數據科學家,在某年某月某天突然心懷恐懼地意識到:可視化是數據科學最關鍵的東西之一,而不僅僅是一個加分項。
這就導致了 Scikit-plot 的誕生。
KDnuggests 副主編 Matthew Mayo 表示:“我注意到 Scikit-plot,是因為在 Reddit 上看到了它的作者的發帖,隨后幾乎立刻便上了手。”
該項目旨在為 Scikit-learn 用戶提供一系列標準、實用的圖表。這包括:
- Elbow plots
- Feature importance graphs
- PCA projection plots
- ROC curves
- Silhouette plots
Scikit-plot 庫有兩個 API,其中一個與 Scikit-learn 緊密整合,以控制對其 API 的調用(Factory API)。另一個更傳統(the Functions API)。但無論哪個都應當足夠你使用。
它的快速上手指南在這里。
2. Scikit-feature
Scikit-feature 是 Python 的開源特征選取資源庫,由亞利桑那州立大學的數據挖掘&機器學習實驗室開發。它基于 scikit-learn、Numpy 以及 Scipy。Scikit-feature 內置約 40 個常見特征選取算法,包含傳統算法以及一些結構式、流式的特征選取算法。
所有的特征選取方案,都有一個共同目標:找出多余、不相關的特征。這是一個相當熱門的研究領域,對此有無數算法。
Scikit-feature 既適用于實用特征選取工程,也適合做算法研究。查看它支持的算法列表請點擊這里。
一名為 Rubens Zimbres 的數據科學家曾如是說:
- “在積累了經驗,嘗試了堆疊神經網絡、并行神經網絡、asymmetric configs、簡單的神經網絡、多層、dropout、激活函數等各種東西之后,我得出了一個結論:論效果,什么都比不上好的特征選取。”
3. Smile
Smile (Statistical Machine Intelligence and Learning Engine) 是一個快速、全面的機器學習系統。受益于先進的數據結構與算法,Smile 有最***的性能。
Smile 覆蓋了機器學習的方方面面,包括分類、回歸、聚類、關聯規則挖掘、特征選取、流形學習(manifold learning,)、多維尺度分析(MDS)、遺傳算法、missing value imputation、最鄰近搜索等等。
對于使用 Java 和 Scala 的開發者,目前來看,Smile 是最合適的機器學習庫。你可以把它看作是一個 JVM Scikit-learn。該項目有非常全面的官方教程,地址: http://haifengl.github.io/smile/。該教程不僅覆蓋了 Smile 使用技巧,還是很高質量的機器學習算法入門資料。
如果你用 JVM 開發機器學習,Smile 絕對值得一試。事實上,如果你身在這個生態系統卻沒聽過 Smile,才是一樁奇聞。
4. Gensim
Gensim 是一個針對話題建模、文件索引、在大語料庫中進行相似性檢索的 Python 算法庫。目標受眾是自然語言處理和信息檢索社區。
Gensim 是個以完整性為目標的多面手。其開發團隊稱,它為“常見算法提供了高效的多核執行,比如 Latent Semantic Analysis (LSA/LSI/SVD), Latent Dirichlet Allocation (LDA), Random Projections (RP), Hierarchical Dirichlet Process (HDP) 或 word2vec 深度學習。”
Gensim 的文件在這里。KDnuggets 以前發過一篇教新手用 Gensim 搞話題建模的教程,請戳這里。
5. Sonnet
本月初,DeepMind 在官方博客宣布了開源 Sonnet 的消息。雷鋒網***時間進行了報道:DeepMind發布Sonnet 幫你用TensorFlow快速搭建神經網絡。
DeepMind 在博客中表示:
“對于 TensorFlow 而言,自從其在 2015 年末開源,一個由眾多高級算法庫組成的多樣生態系統,便已圍繞著它迅速發展起來。這些高級工具,允許常用任務以更簡便、更快的方式完成,極大節省了開發者的時間精力。
作為該生態的新成員,Sonnet 也是如此。它與現有的神經網絡算法庫有許多共同點,但部分功能專為 DeepMind 的研究需要而設計。”
Sonnet 是基于 TensorFlow 的高級算法庫。DeepMind 承認了它與一些現有產品比較類似,但整合了 DeepMind 研究所必須的功能與特性,比如允許特定模塊在隨機聚集的 Tensor 群組上運行:
“RNN 的狀態,最適合于以異構 Tensor 集合來表示,用扁平列表來表示它們很容易會導致錯誤。Sonnet 提供了處理這些隨機等級結構的功能,所以改變你的試驗,使用另一種 RNN,并不需要繁冗地修改代碼。DeepMind 已經對核心 TensorFlow 做了修改,以更好地支持這一使用情況。”
***,希望本文能夠對你產生幫助。讓你知道一些此前沒聽說過的算法庫,或者你并沒有意識到自己其實需要的功能。