这5个机器学习项目你不可错过!(附代码)
作者: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数据派
运营人员:冉小山