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