azureml 中的错误 "Non numeric value(s) were encountered in the target column."

Error in azureml "Non numeric value(s) were encountered in the target column."

我正在使用 Automated ML 运行 时间序列预测管道。

触发 AutoMLStep 时,出现此错误:Non numeric value(s) were encountered in the target column

在对 OutputFileDatasetConfig 应用 read_delimited_files() 之后,此步骤的数据通过 OutputTabularDatasetConfig 传递。我已经检查了前面的步骤,数据由一个 'Date' 列和一个名为 'Place' 的数字列组成,每月观察频率为 +80。

列类型或数据似乎没有问题。我还在数据准备方面应用了许多技术,例如pd.to_numeric(), astype(float) 以确保它是数字。

我也尝试通过 FeaturizationConfig() add_column_purpose('Place','Numeric') 强制执行此操作,但在这种情况下,我收到另一个错误:Expected column(s) Place in featurization config's column purpose not found in X.

有什么解决办法吗?

所以在与一流的 Azure 机器学习工程团队的互动中学到了一些知识。

  1. 调用read_delimited_files()方法时,确保输出文件夹没有太多输入或文件。例如,如果所有中间输出都保存到一个公共文件夹中,它可能会将所有先前的输入读取到该文件夹​​中,并根据数据的形状,从第一个文件中借用模式,或者将它们全部混淆在一起。这可能会导致不一致和错误。在我的例子中,我将许多文件转储到同一个位置,因此这导致了这种方法的混乱。解决方法是明确标记输出文件夹(例如使用 UUID)或提供不同的路径。
  2. 来自 read_delimiter_files() 的数据框可能会将所有列视为对象类型,这可能导致数据类型检查失败(即 label_column 需要为数字)。要缓解,请明确说明类型。例如:
from azureml.data import DataType
prepped_data = prepped_data.read_delimited_files(set_column_types={"Place":DataType.to_float()})