sklearn 的 check_estimator 中的 check_transformer_data_not_an_array 测试的目的是什么?

what is the check_transformer_data_not_an_array test from sklearn's check_estimator intended to?

我正在尝试让自制的变压器通过 check_estimator 测试,并且有一个测试,我不太确定它的用途。

变压器在 check_transformer_data_not_an_array 中失败,因为输入是 _NotAnArray class,而我的包装变压器不喜欢那样。转换器仅适用于数据帧,我添加了一个变通方法将 numpy 数组转换为 df 以通过大多数 check_estimators 测试。

_NotAnArray是在Scikit-learn库中开发的一个class,不知道是什么用途。我想测试 check_transformer_data_not_an_array 也有一个我不知道的目的。

我的问题是:

check_transformer_data_not_an_array 的用途是什么?或者换句话说,为什么它很重要?

如果有人也知道为什么创建/需要 class _NotAnArray,那也会有所帮助。

谢谢!

Scikit-learn 估计器应该验证 X 和 y。此验证会将输入的 X 和 y 转换为 NumPy 数组以执行估算器的数值运算。

check_transformer_data_not_an_array 确保传递类似数组的(但 不是 NumPy 数组)仍然像传递数组一样工作。

它基本上确保了引擎盖下的验证发生。验证由 check_X_y class

这实际上是我通过邮件列表从一位 Scikit-learn 开发人员那里得到的答案:)