以下是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
原文发布时间为:2018-07-11
本文作者:Matthew Mayo, KDnuggets
本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”