Apache Spark的AutoML库

2020-09-10 03:03:05

TransmogrifAI(发音为trăns-mŏgˈrə-fī)是一个运行在Apache Spark之上的用scala编写的automl库。它的开发重点是通过机器学习自动化和强制执行编译时类型安全性、模块性和重用的API来加速机器学习开发人员的工作效率。通过自动化,它实现了接近手动调整模型的精度,时间减少了近100倍。

泰坦尼克号数据集是机器学习社区中经常被引用的数据集。目标是建立一个机器学习模型,预测泰坦尼克号乘客名单中的幸存者。下面是如何使用TransmogrifAI构建模型:

导入COM。Salesforce公司。执行任务。_导入COM。Salesforce公司。执行任务。读者。_导入COM。Salesforce公司。执行任务。特征。_导入COM。Salesforce公司。执行任务。特征。类型。_导入COM。Salesforce公司。执行任务。舞台。实施。分类。_导入组织。阿帕奇人。火花。SparkConf导入组织。阿帕奇人。火花。SQL。SparkSession隐式Val Spark=SparkSession.builder.config(new SparkConf()).getOrCreate()import Spark。暗示。_//将泰坦尼克号数据作为DataFrame Val客运数据读取Data=DataReaders。Simple.csvCase[Passenger](path=pathToData).readDataset().toDF()//提取响应和预测器特征值(存活的,预测的)=FeatureBuilder.fromDataFrame[RealNN](乘客数据,响应=";存活";)//自动特征工程ValFeature Vector=Predictors.Transmogrify()//自动特征验证和选择Val CheckedFeature=Survied.sanityCheck(Feature ureVector,removeBadFeature=True)//自动模型选择ValPred=BinaryClassificationModelSelector().setInput(survived,CheckedFeature).getOutput()//设置TransmogrifAI工作流并训练模型VAL model=new OpWorkflow().setInputDataset(passengersData).setResultFeatures(pred).train()println(";模型摘要:\n";+Model.Summary。

评价3个Logistic回归模型,评价AUPR在[0.6751930383321765,0.7768725281794376]之间的16个随机森林模型,评价AUPR在[0.7781671467343991,0.8104798040316159]带有parameters:|---|-||模型参数的选定模型随机林分类器|值||-|模型类型|随机森林||功能子集策略|AUTO|杂质|GINI||MaxBins|32||MaxDepth|12||minInfoGain|0。001||MinInstancesPerNode|10||NumTrees|50||subsamplingRate|1.0||---|-|Model评估metrics:|-||指标名称|保留。输出集值|训练集值||-||精度|0.85|0.773851590106007||召回|0.6538461538461539|0.6930379746835443||F1|0.7391304347826088|0.7312186978297163||AUROC|0.8821603927986905|0.8766642291593114||AUPR|0.8225075757571668|0.850331080886535||错误|0.1643835616438356。|0.19682151589242053||TP|17.0|219.0||TN|44.0|438.0||FP|3.0|64.0||FN|9.0|97.0按相关性计算的||-|Top模型洞察力:|。-|-|最正面的见解|Correlation||---|--||性别=";女性";|0.5177801026737666||船舱=";其他";|0.3331391338844782||pClass=1|0.3059642953159715||---|--||顶级负面洞察力|相关||---|--||性别=";男性";|-0.5100301587292186||pClass=3|-0.5075774968534326||CABLOIN=NULL|-0.31463114463832633||---|--|Top模型洞察力使用CramersV:|---|-计算。-||最具洞察力|CramersV||---|--||性感|0.525557139885501||登上|0.31582347194683386||年龄|0.21582347194683386||---|--|。

虽然这可能看起来有点太神奇了,但对于那些想要更多控制的人来说,TransmogrifAI还提供了灵活性,可以完全指定要提取的所有特征和正在ML管道中应用的所有算法。有关完整文档、入门、示例、常见问题和其他信息,请访问我们的文档站点。

您只需将TransmogrifAI作为常规依赖项添加到现有项目即可。首先,从下面的版本矩阵中选择与您的项目依赖项匹配的TransmogrifAI版本(如果不确定,请选择稳定版本):

存储库{jcenter()mavenCentral()}依赖项{//TransmogrifAI核心依赖项编译';com.salesforce.transmogrifai:transmogrifai-core_2.11:0.7.0;//TransmogrifAI预先训练的模型,例如OpenNLP POS/NER模型等(Opti

//TransmogrifAI功能:要素类型、要素构建器、要素DSL、阅读器、聚合器等导入COM。Salesforce公司。执行任务。_导入COM。Salesforce公司。执行任务。聚合器。_导入COM。Salesforce公司。执行任务。特征。_导入COM。Salesforce公司。执行任务。特征。类型。_导入COM。Salesforce公司。执行任务。读者。_//火花丰富(可选)导入COM。Salesforce公司。执行任务。公用事业。火花。RichDataset。_导入COM。Salesforce公司。执行任务。公用事业。火花。RichRDD。_导入COM。Salesforce公司。执行任务。公用事业。火花。里希罗。_导入COM。Salesforce公司。执行任务。公用事业。火花。RichMetadata。_导入COM。Salesforce公司。执行任务。公用事业。火花。RichStructType。_