云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

金山云_sql2005数据库备份_哪个好

小七 141 0

apachespark1.4中机器学习管道的新特性

ApacheSpark1.2引入了机器学习(ML)管道来帮助创建、调整和检查实际的ML工作流。Spark的最新版本Spark 1.4大大扩展了ML库。在本文中,我们将重点介绍ML Pipelines API中的几个新特性,包括:一个稳定的API-管道已经从阿尔法毕业!新功能变压器其他ML算法更完整的Python API用于定制的第三方管道组件的可插拔API如果您是使用ML管道的新手,那么您可以通过阅读我们之前的博客文章来熟悉一些关键概念,比如Transformers和Estimators。Spark 1.4的新功能在Spark社区的大力支持下,ML管道在1.4版本中的功能更加丰富。该API包括许多常见的特性转换程序和更多的算法。新功能变压器任何ML工作流的很大一部分都是将数据转换成正确的特性,以便在下游处理中使用。为了简单地提取特征,Spark提供了许多现成的特征变换器。下表概述了Spark 1.4中提供的大多数功能变压器,以及每种变压器的说明。这个API的大部分灵感都来自scikitlearn;作为参考,我们在可用的地方提供了类似的scikitlearn转换器的名称。变压器说明scikit学习二元发生器二进制阈值数值特征二元发生器巴克提器水斗数值特征成范围元素智慧产品分别缩放每个功能/列哈辛特将文本/数据哈希到向量。按术语频率缩放功能哈希器以色列国防军按反文档频率缩放特征TFIDF变压器标准化器按单位标准缩放每行标准化器一个热编码器将k类特征编码为二进制特征一个热编码器多项式展开创建高阶要素多项式特征RegexEnizer公司使用正则表达式标记化(部分文本方法)标准定标器将特征缩放到0平均值和/或单位方差标准定标器字符串索引器将字符串特征转换为基于0的索引标签编码器分词器在空白处标记文本(部分文本方法)矢量汇编程序串联特征向量特征联合矢量索引器确定分类特征,并编制索引文字2vec学习单词的向量表示法*在Spark 1.3中只有3个变压器可用(HashingTF、StandardScaler和Tokenizer)。下面的代码片段演示了如何将多个功能编码器串在一起形成一个复杂的工作流。这个例子从两种类型的特性开始:文本(String)和用户组(category)。例如:我们使用hashing和Word2Vec算法生成文本特征,然后对userGroup应用one-hot编码。最后,我们将所有的特征组合成一个单一的特征向量,这个向量可以被逻辑回归等ML算法使用。从pyspark.ml.功能进口*从pyspark.ml导入管道tok=标记器(inputCol="text",outputCol="words")htf=HashingTF(inputCol="words",outputCol="tf",numFeatures=200)w2v=Word2Vec(inputCol="文本",outputCol="w2v")ohe=OneHotEncoder(inputCol="用户组",outputCol="ug")va=矢量汇编程序(inputCols=tf","w2v","ug"],outputCol="功能")管道=管道(阶段=[tok、htf、w2v、ohe、va])下图显示了完整的管道。管道阶段显示为蓝框,数据帧列显示为气泡。更好的算法覆盖率在Spark 1.4中,PipelinesAPI现在包括树和集合:决策树、随机林和梯度增强树。这些是机器学习中最重要的一些算法。它们可以用于回归和分类,具有足够的灵活性来处理多种类型的应用程序,并且可以同时使用连续和分类特性。Pipelines API还包括Logistic回归和线性回归,弹性网络正则化是一种混合L1和L2正则化的重要统计工具。spark1.4还引入了OneVsRest(也称为One Vs All),它可以将任何二进制分类"base"算法转换为多类算法。这种在OneVsRest中使用任何基本算法的灵活性突出了Pipelines API的多功能性。通过使用支持不同数据类型的数据帧,OneVsRest可以保持对基本算法的细节置之不理。更完整的Python APIML管道在spark1.4中有一个近乎完整的pythonapi。在对内部pythonapi以及统一数据帧API进行了重大改进之后,pythonapi的实现变得更加简单。有关完整的特性列表,请参阅pythonapi文档for ML Pipelines。自定义管道我们已经为用户开放了API,让他们编写自己的管道阶段。如果您在工作流程中需要一个自定义的特性转换器、ML算法或评估指标,您可以编写自己的并将其插入ML管道中。阶段通过数据帧进行通信,数据帧充当一个简单、灵活的API,用于通过工作流传递数据。主要摘要如下:Transformer:这包括特性转换器(例如OneHotEncoder)和经过训练的ML模型(例如LogisticRegressionModel)。估计器:这包括用于训练模型的ML算法(例如,logisticstremation)。Evaluator:这些评估预测和计算度量,对于优化算法参数非常有用(例如,BinaryClassificationEvaluator)。要了解更多信息,请从ML管道编程指南中的ML管道概述开始。展望未来Spark 1.5的路线图包括:API:在管道中覆盖更完整的算法,以及更具特色的PythonAPI。在sparkr中也有一个mllibapi的初步工作。算法:更多的特征变换器(如CountVectorizer、DiscreteCosineTransform、MinMaxScaler和NGram)和算法(如KMeans聚类和naivebayes)。开发人员:对开发人员的改进,包括特性属性API和抽象。ML管道还没有覆盖MLlib中的所有算法,但是这两个api可以互操作。如果您的工作流需要来自这两个api的组件,那么您只需在rdd和dataframe之间进行转换。有关转换的详细信息,请参阅《数据帧指南》。致谢在此版本中非常感谢社区贡献者!您可以在apachespark JIRA上找到包含贡献者的jirasforml管道的完整列表。了解更多首先,下载Spark 1.4并查看ML Pipelines用户指南!也可以试试ML包的代码示例。专家可以通过查看DeveloperApiExample代码片段开始编写自己的转换器和估计器。要做出贡献,请遵循mllib1.5路线图JIRA。祝你好运!免费试用Databricks。今天就开始吧