自动特性设计
通过自动特性工程,Qlik AutoML 可以使用训练数据中的现有特性来创建新特性。这些新的自动设计的特性允许您发现数据中的新模式,并可以极大地提高机器学习模型的性能。
特性设计是从当前特性列创建新特性列的过程。AutoML 可以自动执行特性设计,以改进对某些类型数据的处理。有关功能设计的一般信息,请参见创建新要素列。
自动设计特性及从其衍生它们的父特性都标有 图标 。
选择一个数据集用于实验后,将对该数据集进行分析,并将其中的列标识为包含某些数据类型。这些数据类型允许 AutoML 为数据集中的每一列分配一个特性类型。每列都有以下特性类型之一:
-
分类
-
数字
-
日期
-
自由文本
如果可能,AutoML 会显示一个可以从符合条件的父特性创建的自动设计特性列表。随着预处理的开始,这个自动设计特性列表将进一步细化和减少。建议在实验中包含自动设计特性,但这是可选的。您可以在开始训练之前以及在配置每个新的实验版本时删除单独的自动设计特性。
有关实验训练开始前完成的过程的更多信息,请参阅自动数据准备和转换。
日期特性设计
AutoML 从具有日期特性类型的合格列生成自动设计特性,这些列已被标识为包含日期和时间信息。自动设计特性及从其衍生它们的父特性都标有 图标 。
当 Qlik Cloud 分析 分析您选择用于 AutoML 的训练数据集时,它会将某些数据类型链接到日期特性类型。这包括以下数据类型:
-
日期
-
日期时间
-
时间
-
时间戳
在分析期间分配给这些数据类型中任何一种的特性都被指定为日期特性类型。有关可以查看的数据字段的可用配置文件统计数据的信息,请参阅分析列表视图。
如果可能,AutoML 会显示一个自动设计的日期特性列表,这些特性可以从具有日期特性类型的合格父特性创建。默认情况下,实验中包含自动设计的日期特性。如果您选择包含它们,则新特性性将在实验的 v1 之后生成。
自动设计日期特性具有数字特性类型。默认情况下,它们包含在实验中,但是可选的。在开始实验训练之前,或者在配置下一个实验版本时,可以删除其中的部分或全部。当包含自动设计的日期特性时,将从实验中删除原始父日期特性。
相反,您可以在实验中包含父日期特性。选择执行此操作时,父特性的特性类型将从日期切换为类别,并且自动设计的日期特性将不再可用。建议在实验中使用可用的自动设计特性,因为它们可以提高机器学习模型的性能。
自动设计的日期特性不计入 Qlik Cloud 订阅中指定的 AutoML 数据集大小(训练数据集和应用数据集中的最大单元格数)。只计算原始日期列单元格。
使用日期特性作为实验目标
在极少数情况下,您希望使用具有日期和时间信息的特性作为实验目标,列的特性类型将从日期切换到分类,并且自动设计的特性将被删除。如果您选择了另一个目标,然后稍后希望将日期和时间特性添加为常规特性,则需要根据需要手动将其更改回日期特性类型。如果将特性返回到日期特性类型,则会再次生成自动设计的日期特性。
有关如何更改特性类型的详细信息,请参阅更改特性类型。
可用的自动设计日期特性
当从数据集中的列生成自动设计的日期特性时,AutoML 提取并计算每个日期和日期时间值的特定组件,将每个组件隔离在自己的列中。下表列出了 AutoML 可以生成的自动设计特性。
自动设计特性 | 数据类型 | 特性类型 | 描述 |
年 | 整数 | 数字 | 直接从源日期或时间戳解析的年份字段。 |
月 | 整数 | 数字 | 直接从源日期或时间戳解析的月份字段。 |
日 | 整数 | 数字 | 直接从源日期或时间戳解析的日字段。 |
小时 | 整数 | 数字 | 直接从源时间戳解析的小时字段。 |
分 | 整数 | 数字 | 直接从源时间戳解析的分钟字段。 |
秒 | 整数 | 数字 | 直接从源时间戳解析的秒字段。 |
星期几 | 整数 | 数字 | 星期几,根据源日期、月份和年份计算。 |
周 | 整数 | 数字 | 年中第几周,根据源日期、月份和年份计算。 |
对于创建的每个新特性,原始列名的后缀都是适用的自动设计特性。
预测中的自动设计日期特性
当使用训练数据集创建模型时,会生成自动设计的日期特性,该模型被部署并用作 ML 部署,以对新数据(应用数据集)进行预测。
当使用自动设计日期特性训练的模型被部署用于进行预测时,用于生成预测的应用数据集不需要包括自动设计日期特性。AutoML 在预测之前为应用数据集生成自动设计特性。但是,应用数据集必须包括父日期特性,并且列必须已被配置为具有日期、日期时间、时间戳或时间数据类型。
ML 部署创建的预测数据集,包括 SHAP 和应用数据集,将包括自动设计的日期特性。
实时预测中的自动设计日期特性
为了使实时预测 API 能够处理您的日期和时间戳字段,您发送给实时预测 API 的 JSON 有效负载必须符合以下要求:
-
日期和日期时间值必须是根据 ISO 8601 标准格式化的字符串
-
每列中的数据需要属于同一时区
处理自由文本数据
自由文本(例如,输入表单的文本字符串数据)需要通过机器学习算法进行特殊处理才能在模型中起作用。在 Qlik AutoML 中,自由文本的处理是自动特性设计的一种形式。从技术上讲,该处理使用 TF-IDF(术语频率 - 逆文档频率)方法。
AutoML 支持对具有英文自由文本数据的特性进行单独处理。
如果训练数据中的列包含自由文本,则会为其指定自由文本特性类型。它也可以用作分类特性,尽管如果它具有高基数(太多的唯一值),则强烈不建议使用这种方法。
在实验中,最多可以选择三列作为自由文本特性。
自由文本编码要求
要使包含自由文本的列成功编码为自由文本,它必须满足两个要求。这些要求在实验创建的不同阶段进行检查。
要求包括:
-
列的平均字符长度必须为 50 个或更多个字符。
-
该列的平均单词长度必须为五个或五个以上单词。
将特性视为自由文本
将特性视为自由文本的过程如下:
-
当您选择训练数据时,Qlik AutoML 会识别可能作为自由文本处理的特性。它们在模式视图中标记为可能的自由文本见解,并且将具有自由文本特性类型。
-
在您运行实验的 v1 之后,额外的分析就完成了。此时,最初标记为可能的自由文本的特性可能会被发现无法用作自由文本特性。
如果不能作为自由文本使用的特性具有很高的基数,建议您从实验中取消选择它们。当这些特性被视为分类特性时,对模型性能没有任何价值。
如果不能作为自由文本使用的特性没有很高的基数,您可以通过单击视为分类或将其特性类型从自由文本切换为分类,将其包括在实验中。如果将特性类型保留为自由文本,则它在内部也将被视为类别,并进行影响编码。
有关预处理的完整详细信息,请参阅自动数据准备和转换。
有关模式视图中显示的每个见解的更多信息,请参阅查看有关训练数据的见解。
使用自由文本特性作为实验目标
在极少数情况下,可以选择自由文本特性作为目标。如果该特性满足自由文本编码的所有要求,并且包含两到十个唯一值,则可以将其用作目标。在这些场景中,实验被定义为标准的二元分类或多类分类问题。
预测中的自由文本特性
当您部署使用自由文本特性训练的模型时,只要应用数据集满足以下要求,所产生的 ML 部署就可以生成预测:
-
特性的列名在训练数据集和应用数据集之间匹配
-
应用数据集中对应于训练数据中的自由文本特性的列包含字符串数据
注意事项
在实验中包含自由文本功能会增加实验的复杂性以及运行实验所需的进程。如果您的自由文本数据足够复杂,则置换重要性图表可能无法用于生成的模型。
故障排除
使用自由文本数据来训练模型可能是一个资源密集型过程。当您将包含大量唯一单词的自由文本列作为特性时,可能会遇到错误。
以下是解决这些错误的一些指南:
-
减少训练数据集中的数据子集,以包含更少的自由文本行。
-
删除模型培训中不需要包含的自由文本特性。
-
将一个或多个自由文本列视为分类特性,而不是自由文本特性。请注意,如果这些自由文本特性包含高基数,则不建议这样做。