作者:Matthew Mayo, KDnuggets
翻譯:笪潔瓊,和中華
校對:丁楠雅
本文共2299字,建議閱讀6分鐘。
本文將給大家介紹五個十分可怕但還鮮為人知的機器學習項目,囊括了一些潛在的機器學習的新想法。
以下是5個新的機器學習或與機器學習有關的項目,你可能還沒有聽說過,但是你不能錯過!
本文將給大家介紹五個十分可怕但還鮮為人知的機器學習項目,囊括了一些潛在的機器學習的新想法。它們基本都是Python項目。我並不是故意這麼選的,但毫無疑問有我自己偏好的影響在裡面。以前我也介紹過許多各種各樣的項目(R、Go、C++、Scala、Java等)。
我承諾很快會出一個R版的,並在評估這些項目時使用一些外部幫助(我得承認我不是很適應R生態)。
1. Live Loss Plot
不要閉著眼睛訓練深度學習模型!要有耐心地去觀察你的每一期訓練!
這是一個由Piotr migdaet al提供的開源Python庫,可以在Jupyter Notebook中為Keras、PyTorch和其他框架提供訓練損失圖像。當使用Keras時,Live Loss Plot是一個簡單的回調函數。
代碼如下:
from livelossplot import PlotLossesKeras
model.fit(X_train, Y_train,
epochs=10,
validation_data=(X_test, Y_test),
callbacks=[PlotLossesKeras()],
verbose=0)
2. Parfit
這個項目來自Jason Carpenter,他是舊金山大學數據科學碩士研究生,同時也是一名機器學習工程師。這個庫可以將sklearn機器學習模型的擬合和評分情況並行化和可視化。一旦導入,您可以自由地使用bestFit()或其他函數。
代碼如下:
from parfit import bestFit # Necessary if you wish to use bestFit
# Necessary if you wish to run each step sequentially
from parfit.fit import *
from parfit.score import *
from parfit.plot import *
from parfit.crossval import *
grid = {
'min_samples_leaf': [1, 5, 10, 15, 20, 25],
'max_features': ['sqrt', 'log2', 0.5, 0.6, 0.7],
'n_estimators': [60],
'n_jobs': [-1],
'random_state': [42]
}
paramGrid = ParameterGrid(grid)
best_model, best_score, all_models, all_scores = bestFit(RandomForestClassifier(), paramGrid,
X_train, y_train, X_val, y_val, # nfolds=5 [optional, instead of validation set]
metric=roc_auc_score, greater_is_better=True,
scoreLabel='AUC')
print(best_model, best_score)
3. Yellowbrick
Yellowbrick是以一個“促進機器學習模型選擇的可視化分析和診斷工具”。 更確切地,Yellowbrick是一套視覺診斷的可視化工具,它擴展了scikit-learn API,以引導人們選擇模型。簡單地說,Yellowbrick將scikit-learn與matplotlib結合在一起,這是scikit-learn文檔的傳統優點,但它可以為您的模型生成可視化!
請參閱Github上的示例以及更多詳細的文檔。
4. textgenrnn
textgenrnn為文本生成任務帶來了額外的抽象層,旨在讓您
“輕鬆在任何文本數據集上僅用幾行代碼就訓練自己的文本生成神經網絡”。該項目建立在Keras上,並擁有以下功能:
- 一種新的神經網絡架構,利用新技術作為注意力加權和跳躍嵌入來加速訓練模型和提高模型質量。
- 能夠在字符級或文字級上訓練並生成文本。
- 能夠配置RNN大小,RNN的層數,以及是否使用雙向RNN。
- 能夠在任何輸入文本文件上進行訓練,甚至包括大型文件。
- 能夠在GPU上訓練模型,然後用它們來生成含有CPU的文本。
- 能夠在GPU上使用強大的CuDNN實現RNN,與典型的LSTM實現相比,這將大大加快訓練時間。
Textgenrnn很容易上手及運行。
代碼如下:
from textgenrnn import textgenrnn
textgen = textgenrnn()
textgen.train_from_file('hacker-news-2000.txt', num_epochs=1)
textgen.generate()
您可以在上面鏈接的Github項目中找到更多信息。
5. Magnitude
Magnitude是一個快速、簡單的矢量嵌入實用程序庫。它是由Plasticity開發的一個功能豐富的Python庫和矢量存儲文件格式,以快速、高效、簡單地進行機器學習模型中的矢量嵌入。它主要是為Gensim提供一個更簡單和更快的替代方案,但也可以用作NLP之外的領域的通用密鑰矢量存儲。repo提供了各種流行的嵌入模型的鏈接,這些模型已經以量級的格式做好了準備,還包括將任何其他的單詞嵌入文件轉換成相同格式的指令。
如何導入?
from pymagnitude import *
vectors = Magnitude("/path/to/vectors.magnitude")
Github repo中有更多信息,包括你熟悉的使用這個簡化的庫來做預先訓練的單詞嵌入。
原文鏈接:
https://www.kdnuggets.com/2018/06/5-machine-learning-projects-overlook-jun-2018.html
譯者簡介
笪潔瓊,中南財大MBA在讀,目前研究方向:金融大數據。目前正在學習如何將py等其他軟件廣泛應用於金融實際操作中,例如抓包預測走勢(不會預測股票/虛擬幣價格)。可能是金融財務中最懂建築設計(風水方向)的長腿女生。花式調酒機車衝沙。上賽場裡跑過步開過車,商院張掖絲路挑戰賽3天徒步78公里。大美山水心欲往,凜冽風雨信步行。
和中華,留德軟件工程碩士。由於對機器學習感興趣,碩士論文選擇了利用遺傳算法思想改進傳統kmeans。目前在杭州進行大數據相關實踐。加入數據派THU希望為IT同行們儘自己一份綿薄之力,也希望結交許多志趣相投的小夥伴。
運營人員:冉小山
閱讀更多 THU數據派 的文章