欢迎来到天天文库
浏览记录
ID:27870789
大小:29.00 KB
页数:7页
时间:2018-12-06
《基于python语言下的的机器学习库.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于python语言下的的机器学习库 我们的目的不是列出Python中所有机器学习库(搜索“机器学习”时Python包索引(PyPI)返回了139个结果),而是列出我们所知的有用并且维护良好的那些。另外,尽管有些模块可以用于多种机器学习任务,我们只列出主要焦点在机器学习的库。比如,虽然Scipy包含一些聚类算法,但是它的主焦点不是机器学习而是全面的科学计算工具集。因此我们排除了Scipy(尽管我们也使用它!)。 另一个需要提到的是,我们同样会根据与其他科学计算库的集成效果来评估这些库,因为机器学习(有监督的或者无监督的)也是数据处理系统的一
2、部分。如果你使用的库与数据处理系统其他的库不相配,你就要花大量时间创建不同库之间的中间层。在工具集中有个很棒的库很重要,但这个库能与其他库良好集成也同样重要。 如果你擅长其他语言,但也想使用Python包,我们也简单地描述如何与Python进行集成来使用这篇文章列出的库。 Scikit-Learn ScikitLearn是我们在CBInsights选用的机器学习工具。我们用它进行分类、特征选择、特征提取和聚集。我们最爱的一点是它拥有易用的一致性API,并提供了很多开箱可用的求值、诊断和交叉验证方法(是不是听起来很熟悉?Python也提供了
3、“电池已备(译注:指开箱可用)”的方法)。锦上添花的是它底层使用Scipy数据结构,与Python中其余使用Scipy、Numpy、Pandas和Matplotlib进行科学计算的部分适应地很好。因此,如果你想可视化分类器的性能(比如,使用精确率与反馈率(precision-recall)图表,或者接收者操作特征(ReceiverOperaTIngCharacterisTIcs,ROC)曲线),Matplotlib可以帮助进行快速可视化。考虑到花在清理和构造数据的时间,使用这个库会非常方便,因为它可以紧密集成到其他科学计算包上。 另外,它还包
4、含有限的自然语言处理特征提取能力,以及词袋(bagofwords)、tfidf(TermFrequencyInverseDocumentFrequency算法)、预处理(停用词/stop-words,自定义预处理,分析器)。此外,如果你想快速对小数据集(toydataset)进行不同基准测试的话,它自带的数据集模块提供了常见和有用的数据集。你还可以根据这些数据集创建自己的小数据集,这样在将模型应用到真实世界中之前,你可以按照自己的目的来检验模型是否符合期望。对参数最优化和参数调整,它也提供了网格搜索和随机搜索。如果没有强大的社区支持,或者维护得
5、不好,这些特性都不可能实现。我们期盼它的第一个稳定发布版。 Statsmodels Statsmodels是另一个聚焦在统计模型上的强大的库,主要用于预测性和探索性分析。如果你想拟合线性模型、进行统计分析,或者预测性建模,那么Statsmodels非常适合。它提供的统计测试相当全面,覆盖了大部分情况的验证任务。如果你是R或者S的用户,它也提供了某些统计模型的R语法。它的模型同时也接受Numpy数组和Pandas数据帧,让中间数据结构成为过去! PyMC PyMC是做贝叶斯曲线的工具。它包含贝叶斯模型、统计分布和模型收敛的诊断工具,也包含
6、一些层次模型。如果想进行贝叶斯分析,你应该看看。 Shogun Shogun是个聚焦在支持向量机(SupportVectorMachines,SVM)上的机器学习工具箱,用C++编写。它正处于积极开发和维护中,提供了Python接口,也是文档化最好的接口。但是,相对于Scikit-learn,我们发现它的API比较难用。而且,也没提供很多开箱可用的诊断和求值算法。但是,速度是个很大的优势。 Gensim Gensim被定义为“人们的主题建模工具(topicmodelingforhumans)”。它的主页上描述,其焦点是狄利克雷划分(La
7、tentDirichletAllocaTIon,LDA)及变体。不同于其他包,它支持自然语言处理,能将NLP和其他机器学习算法更容易组合在一起。如果你的领域在NLP,并想进行聚集和基本的分类,你可以看看。目前,它们引入了Google的基于递归神经网络(RecurrentNeuralNetwork)的文本表示法word2vec。这个库只使用Python编写。 Orange Orange是这篇文章列举的所有库中唯一带有图形用户界面(GraphicalUserInterface,GUI)的。对分类、聚集和特征选择方法而言,它是相当全面的,还有些交
8、叉验证的方法。在某些方面比Scikit-learn还要好(分类方法、一些预处理能力),但与其他科学计算系统(Numpy,Scipy,Matplotli
此文档下载收益归作者所有