大盤點:8月Github上7個值得關注的數(shù)據(jù)科學項目
準備好在機器學習之路上再邁出一大步了嗎?使用試驗性數(shù)據(jù)集、流行的數(shù)據(jù)科學庫和框架是個好的開始,但如果想在競爭中脫穎而出,必須有所突破,使自己與眾不同。
最佳途徑就是運用數(shù)據(jù)科學領域最新技術完成項目。想成為計算機視覺領域的專家嗎?那就去學習最先進的目標檢測算法。如果希望在自然語言處理(NLP)方面有所建樹,那就學習Transformer模型的各種特性和分支。
重點是,要一直有所準備并樂于鉆研最新的數(shù)據(jù)科學技術。數(shù)據(jù)科學是發(fā)展最快的領域之一,作為數(shù)據(jù)科學家的我們也需要不斷學習成長。
本文帶你來看看GitHub上創(chuàng)建于2019年8月的7個數(shù)據(jù)科學項目。筆者所選項目的范圍十分廣泛,涉及從機器學習到強化學習的諸多領域。
本文將這些數(shù)據(jù)科學項目分為三大類:
- 機器學習項目
- 深度學習項目
- 編程項目
最好的數(shù)據(jù)科學項目" src="http://p9.pstatp.com/large/pgc-image/bdc119a2c04647449f7e723dafb1d748" _fcksavedurl="http://p9.pstatp.com/large/pgc-image/bdc119a2c04647449f7e723dafb1d748" width="1" height="1">
機器學習項目
pyforest——用一行代碼導入所有Python數(shù)據(jù)科學庫
筆者非常喜歡這個Python庫。正如標題所述,所有常用的數(shù)據(jù)科學庫都可以通過一個pyforest庫導入??纯垂P者從該庫的Github倉庫中摘錄的示例:
激動了嗎?Pyforest目前包括pandas、NumPy、matplotlib等數(shù)據(jù)科學庫。
只需調(diào)用pip install pyforest這一指令在機器上安裝該庫,就能用一行代碼導入所有流行的Python數(shù)據(jù)科學庫。
- from pyforest import *
太神奇了!你一定也會像筆者這樣享受使用它的過程。
HungaBunga – 另一種使用sklearn庫搭建機器學習模型的方式
如何從搭建好的機器學習模型中選出最合適的那一個?如何確保發(fā)揮作用的是正確的超參數(shù)?這些都是數(shù)據(jù)科學家需要解答的關鍵問題。
相較于其他大多數(shù)數(shù)據(jù)庫,HungaBunga項目能讓用戶更快地找到答案。它會利用所有可能的超參數(shù)來運行sklearn庫中的所有模型(是的,所有!),隨后通過交叉驗證對模型進行排序。
下面是導入所有模型(包括分類模型和回歸模型)的方式:
- from hunga_bunga import HungaBungaClassifier, HungaBungaRegressor
看看下面這篇全面討論了監(jiān)督機器學習算法的文章:
- 常用的機器學習算法(使用Python和R語言)
深度學習項目
DeepMind發(fā)布的用于強化學習的Behavior Suite(bsuite)
最近Deepmind連年增長的巨額虧損成了新聞。但是必須承認,這家公司在強化學習研究方面仍遙遙領先。他們在這一領域投入大量人力物力,認為強化學習是人工智能的未來。
下面介紹他們最新的開源產(chǎn)品——bsuite。這一項目集合了許多實驗的成果,這些實驗旨在理解強化學習對象的核心性能。
筆者喜歡這一研究領域,因為它必然會努力達成兩個目的(每個Github倉庫達成一個):
- 收集有價值且可推廣運用的項目,這些項目會捕捉到在設計高效通用的機器學習算法時遇到的關鍵問題。
- 以通用尺度為標準,通過對象的表現(xiàn)研究其行為。
這個Github倉庫詳細解釋bsuite的使用方式。
讀者肯定聽說過BERT。它基于Transformer架構,是自然語言處理(NLP)領域最流行的框架,并且正被越來越廣泛地應用。
但是注意:運行它可能需要大量的資源。那么數(shù)據(jù)科學家該如何在自己的機器上運行BERT呢?更進一步,使用DistilBERT!
DistilBERT是Distillated-BERT的略稱,由PyTorch轉(zhuǎn)換框架團隊開發(fā)。它是在BERT架構基礎上搭建的一個小型且便宜的Transformer模型。開發(fā)團隊稱DistilBERT比BERT運行速度快60%,而性能與BERT相差不到5%。
這一Github倉庫講述了DistilBERT和Python代碼協(xié)同工作的方式??梢渣c擊下方鏈接了解更多有關PyTorch-Transformers框架及其在python中的使用方法。
- Pytorch-Transformers簡介:一個非常神奇的NLP庫(借助Python代碼)
ShuffleNet Series ——一個極其高效、用于移動設備的卷積神經(jīng)網(wǎng)絡
接下來介紹的是計算機視覺項目!ShuffleNet是一個計算效率極高的卷積神經(jīng)網(wǎng)絡架構,適用于計算力有限的移動設備。
這個Github倉庫包含了以下ShuffleNet模型(對,不止一個):
- ShuffleNet: 一個極其高效、用于移動設備的卷積神經(jīng)網(wǎng)絡
- ShuffleNetV2: 高效CNN架構設計的實用建議
- ShuffleNetV2+: ShuffleNetV2的強化版本
- ShuffleNetV2.Large: ShuffleNetV2的深化版本
- OneShot: 通過均勻抽樣進行單通路單樣本神經(jīng)架構的研究
- DetNAS: 目標檢測技術的支撐性研究
RAdam –提高學習率方差
目前,發(fā)布時間不到兩周的RAdam項目已經(jīng)得到了1200多顆星星的評價。足以證明這個倉庫非常給力!
RAdam的開發(fā)者在其論文中(https://arxiv.org/pdf/1908.03265.pdf)表明,深度學習技術的收斂問題是由于在模型訓練的早期階段,自適應學習率的方差過大。
RAdam是Adam的一個新版本,可以修正自適應學習率的變化。這個版本在普通的Adam優(yōu)化器基礎上做出了切實改進,改善了方差問題。
處理不同學習率時RAdam的表現(xiàn)與Adam和SGD的對比如下(X軸代表訓練輪數(shù)):
一定要查閱下面關于機器學習優(yōu)化的指南(其中包含Adam的相關內(nèi)容):
編程項目
ggtext –用于ggplot2的升級版文本渲染
對于社區(qū)中的所有R語言用戶,尤其對于那些經(jīng)常使用ggplot2包的用戶(幾乎每個人),這個項目會非常實用。
Ggtext包讓用戶能夠?qū)ι傻膱D像進行富文本渲染。下面是一些可以通過ggtext完成的操作:
- 產(chǎn)生一個新的名為element_markdown()的主題元素,它能將文本渲染為markdown語言或者HTML
- 在坐標軸中插入圖像(如下圖所示)
- 使用geom_richtext()函數(shù)創(chuàng)建markdown/HTML標簽(如下圖所示)
這個GitHub倉庫包含了一些直觀的例子,讀者可以在自己的機器上重復這些示例。
Ggtext目前還不能通過CRAN調(diào)用,用戶需要下載并通過下面的指令從GitHub安裝它: