砖AutoML是如何工作的
本文详细介绍砖AutoML的工作原理及其实现的概念缺失值归责大数据采样。
砖AutoML执行以下:
准备模型训练数据集。例如,AutoML执行不平衡数据检测分类问题的模型前培训。
迭代训练和调优多个模型,每个模型是由开源组件可以很容易地编辑和集成到您的机器学习管道。bob下载地址
AutoML自动分配hyperparameter跨集群的工作节点优化试验。
与砖运行时9.1 LTS毫升以上,AutoML自动样本数据集,如果太大了,适合一个工作节点的记忆。看到抽样大型数据集。
基于算法的评估模型scikit-learn,xgboost,LightGBM,先知,华宇电脑包。
显示结果,并提供一个Python笔记本每个试验运行的源代码可以评论,复制和修改代码。AutoML也计算汇总统计数据集上并将这些信息保存在一个笔记本,你可以检查。
AutoML算法
砖AutoML火车和评估模型的基础上,算法在下表中。
请注意
决策树的分类和回归模型,随机森林、逻辑回归和线性回归与随机梯度下降算法是基于scikit-learn。
分类模型 |
回归模型 |
预测模型 |
---|---|---|
Auto-ARIMA(砖中可用的运行时10.3毫升以上。) |
||
支持数据的功能类型
不是不支持下面列出的功能类型。例如,不支持图片。
类型是支持以下特性:
数字(
ByteType
,ShortType
,IntegerType
,LongType
,FloatType
,倍增式
)布尔
字符串(分类或英文文本)
时间戳(
TimestampType
,DateType
)ArrayType[数字](砖运行时10.4 LTS毫升以上)
DecimalType(砖运行时11.3 LTS毫升以上)
将数据分为训练/验证/测试集
砖运行时的10.1毫升以上,您可以指定一个时间列用于培训/验证/测试数据分割分类和回归问题。如果您指定这一列,数据集分为训练,验证集和测试集的时间。点是最早用于训练,下一个最早的验证,和最新的点作为测试集。
在砖运行时的10.1毫升,列必须是一个时间戳或整数列。在砖运行时的10.2毫升以上,你也可以选择一个字符串列。
抽样大型数据集
请注意
抽样不应用于预测问题。
尽管AutoML分发hyperparameter跨集群的工作节点优化试验,每个模型训练在一个工作节点。
AutoML自动估计所需的内存负载和训练你的数据集样本数据集,如果必要的。
通过砖砖运行时的9.1 LTS毫升运行时10.5毫升,抽样比例并不依赖于集群的节点类型或在每个节点上的内存量。
砖运行时的11。x ML:
抽样比例增加工人每核心节点有更多的记忆。你可以通过选择一个增加样本量内存优化实例类型。
你可以进一步增加样本容量,选择一个更大的值
spark.task.cpus
在火花配置集群。默认设置为1;最大值是工人的节点上的cpu数量。当你增加这个值,样本容量较大,但较少的试验并行运行。例如,在一台机器与四核和64 gb的RAM,默认值spark.task.cpus = 1
运行4人均试验与每个试验仅限于16 gb的RAM。如果你设置spark.task.cpus = 4
每个工人只运行一个试验,但试验可以使用64 gb RAM。
在砖运行时的12.0毫升以上,AutoML可以训练对大数据集分配更多的CPU核/培训任务。你可以增加样本大小选择一个实例大小与更大的总内存。
在砖运行时的11.0毫升以上,如果AutoML采样数据集,抽样分数所示概述选项卡在UI中。
对于分类问题,AutoML使用PySparksampleBy
方法对于分层抽样保存目标标签分布。
对于回归问题,AutoML使用PySpark样本
方法。
不平衡数据集对分类问题的支持
在砖运行时的11.2毫升以上,如果AutoML检测到不平衡数据集,它试图减少训练数据集,将采样的不平衡主要类(es)和添加类权重。AutoML只有平衡训练数据集和不平衡测试和验证数据集。这样做确保了模型性能总是评估non-enriched数据集与真正的输入类分布。
平衡不平衡训练数据集,AutoML使用类权重是逆相关downsampled给定类的程度。例如,如果一个训练数据集与100个样本95个样本属于a类和5样本属于B类,AutoML减少这种不平衡,将采样类70个样本,这是将采样比例的70/95或0.736类,同时保持样本的数量在5 B类。确保最后一个模型是正确校准和概率分布模型的输出是输入的一样,AutoML扩展的类体重类的比例1/0.736,或1.358,同时保持B类的权重为1。AutoML然后使用这些类权重模型训练作为参数,以确保适当加权,每个类的样本训练模型。
语义类型检测
请注意
语义类型检测是不能应用于预测问题。
AutoML不执行语义类型检测的列自定义归责方法指定。
与砖运行时9.1 LTS毫升以上,AutoML试图检测是否列有一个语义类型,不同于火花或熊猫表中的数据类型模式。AutoML对待这些列作为检测语义类型。这些检测是最好的努力,可能会错过在某些情况下存在的语义类型。你也可以手动设置的语义类型列或告诉AutoML不要语义类型检测应用于列使用注释。
具体来说,AutoML使这些调整:
字符串和整数列代表日期或时间戳数据被视为一个时间戳的类型。
字符串列代表数值数据被当作一个数字类型。
砖运行时的10.1毫升以上,AutoML也使得这些调整:
数字列包含类别id作为分类特征。
字符串列包含英语文本被当作一个文本功能。
语义类型注解
砖运行时的10.1毫升以上,您可以手动控制分配的语义类型通过将语义类型列注释。手工标注的语义类型的列<列名称>
作为<语义类型>
使用下面的语法:
metadata_dict=df。模式(“<列名称>”]。元数据metadata_dict(“spark.contentAnnotation.semanticType”]=“<语义类型>”df=df。withMetadata(“<列名称>”,metadata_dict)
<语义类型>
可以是下列之一:
分类
:列包含分类值(例如,数值应视为IDs)。数字
:列数值(例如,字符串值,可以解析成数字)。datetime
:列包含时间戳值(字符串、数字或日期值,可以转化为时间戳)。文本
:字符串列包含英语文本。
禁用语义类型检测在一个专栏中,使用特殊的关键字注释本机
。
explainability夏普利值(世鹏科技电子)模型
请注意
高钙11.1及以下,世鹏科技电子情节不生成,如果数据集包含一个datetime
列。
生产的笔记本AutoML回归和分类包括运行代码来计算沙普利值。沙普利值是基于博弈论和估计的重要性每个特性的预测模型。
AutoML笔记本电脑使用世鹏科技电子包计算夏普利值。消耗大量内存的,因为这些计算是计算不默认执行。
计算和显示夏普利值:
去功能的重要性部分在一个AutoML生成试验笔记本。
集
shap_enabled=真正的
。重新运行笔记本。
时间序列聚合
预测问题,当有多个值时间序列中时间戳,AutoML使用值的平均值。
使用和相反,编辑源代码的笔记本。在聚合数据…细胞,改变.agg (y = (target_col,“avg”))
来.agg (y = (target_col,“金额”)
如图所示:
group_cols=(time_col]+id_colsdf_aggregation=df_loaded\。groupby(group_cols)\。gg(y=(target_col,“和”))\。reset_index()\。重命名(列={time_col:“死刑”})
功能存储整合
与砖运行时11.3 LTS毫升以上,您可以使用现有的功能表特色商店增加的原始输入数据集分类和回归问题。
与砖运行时12.2 LTS毫升以上,您可以使用现有的功能表特色商店增加的原始输入数据集所有AutoML问题:分类、回归分析和预测。
创建一个功能表,请参阅砖特性的商店。
使用现有的功能表,你可以选择功能表与AutoML UI或设置feature_store_lookups
参数在你AutoML运行规范。
feature_store_lookups=({“table_name”:“example.trip_pickup_features”,“lookup_key”:(“pickup_zip”,“rounded_pickup_datetime”),},{“table_name”:“example.trip_dropoff_features”,“lookup_key”:(“dropoff_zip”,“rounded_dropoff_datetime”),}]