【问题标题】:Spark Chi-Square Feature Selection PerformanceSpark 卡方特征选择性能
【发布时间】:2015-11-21 17:48:57
【问题描述】:

Spark ChiSqureSelector 算法存在一些性能问题。

我实现了如下特征选择:

private JavaRDD<LabeledPoint> chiSqure(JavaRDD<LabeledPoint> orginalData, int k) {
    ChiSqSelector selector = new ChiSqSelector(k);
    transformer = selector.fit(orginalData.rdd());
    return orginalData.map(lp -> new LabeledPoint(lp.label(), transformer.transform(lp.features())));
}

一切都很好,但对于每个维度为 15k(和 numberOfTopFeatures=14k 参数)的 8000 个向量,chiSquare 模型拟合大约需要 15 分钟。

我需要使用这个函数来处理大约 100k 个向量的原始数据大小,每个向量的维度约为 100k,所以我担心它会影响性能。

我做错了吗? 如何提高卡方模型拟合的性能?

我的测试环境参数 CPU:英特尔酷睿 2 双核 3.0 GHz, 内存:8 GB

【问题讨论】:

    标签: java apache-spark machine-learning apache-spark-mllib


    【解决方案1】:

    Spark 的性能能力通常来自在多台机器上运行,所以我不会特别担心任何单机基准测试。总体而言,您的使用情况看起来不错。

    【讨论】:

    • 那么您能推荐我使用卡方算法进行特征选择的任何其他库吗?我目前只使用单机环境。
    【解决方案2】:

    首先您应该验证 SparkConf 的设置,然后验证 SparkContext(设置 #cores、执行程序和驱动程序内存)。其次,即使在单台机器上,您也可以使用 Spark 模拟集群。以here 为例。

    【讨论】:

      猜你喜欢
      • 2020-07-07
      • 2011-07-01
      • 2010-12-23
      • 1970-01-01
      • 2017-08-14
      • 2013-02-21
      • 1970-01-01
      相关资源
      最近更新 更多