【发布时间】:2018-01-19 11:20:53
【问题描述】:
根据 Spark NaiveBayes 的官方文档:
它支持多项式 NB(见此处),可以有限处理 支持离散数据。
如何在 Spark NaiveBayes 中处理连续数据(例如:某些文档中某些的百分比)?
【问题讨论】:
标签: apache-spark apache-spark-mllib naivebayes
根据 Spark NaiveBayes 的官方文档:
它支持多项式 NB(见此处),可以有限处理 支持离散数据。
如何在 Spark NaiveBayes 中处理连续数据(例如:某些文档中某些的百分比)?
【问题讨论】:
标签: apache-spark apache-spark-mllib naivebayes
当前的实现只能处理二进制特征,因此为了获得良好的结果,您必须对数据进行离散化和编码。对于离散化,您可以使用Buketizer 或QuantileDiscretizer。前一种成本较低,当您想使用一些特定领域的知识时可能更适合。
对于编码,您可以使用OneHotEncoder 进行虚拟编码。调整后的dropLastParam。
所以总的来说你需要:
QuantileDiscretizer 或 Bucketizer -> OneHotEncoder 用于每个连续特征。StringIndexer* -> OneHotEncoder 用于每个离散特征。VectorAssembler 结合以上所有内容。* 或预定义的列元数据。
【讨论】: