Tensorflow的决策森林如何处理分类数据?

y1aodyip  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(256)

我正在评估两种不同的无监督ML算法,Isolation Forest和LSTM Autoencoder模型,以识别大型时间序列数据中的异常。该数据集包括IP地址、云订阅ID、租户ID、userAgent和客户端应用ID等分类数据。
在Tensorflow决策树(TF-DF)模型的实现上阅读tutorial时,它提到该模型在本机处理非标签分类值,并且

不需要以独热码编码、归一化或额外的is_present特征的形式进行预处理。

有人知道Tensorflow如何在后台处理分类特征吗(假设他们进行了一些转换为数字表示)?

ivqmmu1c

ivqmmu1c1#

Tl;dr:* 在决策树/森林中使用分类特征有一种不需要编码的自然方法。Tensorflow Decision Forests使用这种方法和许多标准变换来处理分类特征。*

tensorflow 决策森林(TF-DF)构造决策树/决策森林模型。单个决策树递归地沿着其特征分割数据集。沿分类特征的分割自然可以通过所谓的 * 集合内条件 * 来执行。例如,树可以表示userAgents \in \{“Mozilla/5.0”, “InternetExplorer/10.0”\}等条件,也可以表示其他类型的条件。如果数据集包含分类特征,则(TF-DF)可以构造集合内条件。
更具体地说,Tensorflow Decision Forests使用C++库Yggdrasil Decision Forests(YDF)进行任何高级计算。YDF提供了三种不同的算法来查找数据的良好分类拆分。例如,Random算法将随机尝试许多可能的拆分并选择最佳拆分。
出于性能和质量的原因,YDF还预处理分类特征:如果一个分类值非常罕见,YDF可以认为它是“字典外”,“罕见”的阈值是用户可配置的。此外,YDF通过降低项目频率将分类特征Map到整数,Map被存储为模型的一部分。注意,这纯粹是一个内部编码;算法知道特征是分类的,因此整数编码的典型问题不适用。
最后,Tensorflow Decision Forests(TF-DF)使用Keras,它要求分类任务具有整数标签,因此TF-DF用户必须自己编码标签或使用内置的pd_dataframe_to_tf_dataset。
请注意,这个答案只适用于Tensorflow决策森林,Tensorflow的其他部分可能需要手动编码。

相关问题