hadoop - Mahout - 朴素贝叶斯模型非常慢

标签 hadoop machine-learning classification cluster-analysis mahout

我有大约 6200 个类别的大约 4400 万个训练示例。 训练后,模型大小约为 450MB

在测试时,使用 5 个并行映射器(每个都有足够的 RAM),分类以每秒 4 个项目的速度进行,这太慢了。

怎样才能加快速度? 我能想到的一种方法是减少单词语料库,但我担心会失去准确性。我将 maxDFPercent 设置为 80。

我想到的另一种方法是通过聚类算法运行项目,并根据经验最大化聚类数量,同时将每个类别中的项目限制为单个聚类。这将使我能够为每个集群构建单独的模型,从而(可能)减少训练和测试时间。

还有其他想法吗?

编辑:

在给出下面的一些答案之后,我开始考虑通过运行聚类算法来进行某种形式的下采样,识别彼此“高度”接近的项目组,然后从其中提取一些样本的并集那些“高度”接近的群体和其他彼此不那么紧密接近的样本。

我还开始考虑使用某种形式的数据标准化技术,其中涉及在使用 n-gram 时合并编辑距离 ( http://lucene.apache.org/core/4_1_0/suggest/org/apache/lucene/search/spell/NGramDistance.html )

我还在考虑使用 hadoop 流 api 来利用此处列出的 Python 中的一些 ML 库 http://pydata.org/downloads/ ,这里http://scikit-learn.org/stable/modules/svm.html#svm (我认为这些使用下面答案之一中提到的liblinear)

最佳答案

尽早修剪停用词和其他无用的词(支持度太低等)。

根据您使用集群的方式,它实际上可能会使测试阶段的成本变得更加昂贵。

尝试除 Mahout 之外的其他工具。相比之下,我发现 Mahout 真的很慢。似乎它在某个地方的开销非常高。

关于hadoop - Mahout - 朴素贝叶斯模型非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950429/

相关文章:

excel - 来自 Excel Power Query 的 HDFS 连接

java - 测试hadoop map程序报错的MRUnit测试

machine-learning - 如何初始化词汇表外的词嵌入?

machine-learning - 如何根据标签对用户进行聚类

hadoop 2.7.1 伪分布式模式 - 只看到 1 个 reducer

hadoop - HDInsight Oozie 4.2.0.2.5 Spark2 Action Jackson碰撞

machine-learning - 在rapidminer中将性能提取为宏

python - 尝试将分类数据转换为数字并运行 RandomForestClassifier

machine-learning - 为什么 F 测量是调和平均值,而不是精确度和召回率测量的算术平均值?

python - 如何使用现有的和较新的类微调 keras 模型?