我是ML新手,我正在使用Spark ml构建预测系统。我读到,特征工程的一个主要部分就是在做所需的预测时发现每个特征的重要性。在我的问题中,我有三个分类特征和两个字符串特征。我使用OneHotEncoding
技术来转换分类特征,并使用简单的HashingTF
机制来转换字符串特征。然后,这些信息作为管线的各个阶段输入,包括ml NaiveBayes
和VectorAssembler
(将所有特征组装成一个列),分别使用训练和测试数据集进行拟合和转换。spark ml:如何找到功能重要性
一切都很好,除了我如何确定每个功能的重要性?我知道我现在只有少数功能,但我会尽快添加。我遇到的最接近的是ChiSqSelector
spark ml模块,但它似乎只适用于分类功能。
谢谢,任何线索赞赏!
你可以开发一个特征选择基于信息增益,即在一个特征向量和标签向量之间的信息增益。我们的目标是选择一些功能的子集,以最大化它们和标签之间的信息增益,并最大限度地减少功能本身的信息增益。 GitHub上有几个示例代码。 –
@ Umberto你能指点我一些这些例子吗?非常感谢! – void