如何在Spark MLLib中配置支持向量机的核选择和损失函数

我在AWS Elastic Map Reduce(EMR)上安装了Spark,并使用MLLib中的包运行了SVM。但是,在构建模型时没有选择参数的选项,比如核选择和误分类成本(就像R中的e1071包一样)。请问有人能告诉我如何在构建模型时设置这些参数吗?


回答:

摘要 / 简短版本:

SVMWithSGD的硬编码方法是:

private val gradient = new HingeGradient()
private val updater new SquaredL2Updater()

由于这些是硬编码的 – 你无法像在R中那样配置它们。

详细信息:

在“裸机”级别,mllib的SVMWithSGD支持以下参数:

  • 为每个特征计算的权重。
  • 为此模型计算的截距。
  • 正/负预测之间的阈值(默认为0.0)

还有其他便利方法允许你定义:

  • 正则化类型(L1 vs L2)
  • 正则化参数(lambda)
  • 用于每次训练批次的输入数据的比例
  • 初始步长(用于梯度下降)

你会注意到你提到的两个项目:

  • 核选择
  • 误分类成本

不包括在这些可配置参数中

在底层,这些是由调用GradientDescent类定义的,如下所示:

* @param gradient 要使用的梯度函数。* @param updater 用于在每次迭代后更新权重的更新器。GradientDescent(gradient: Gradient, private var updater: Updater)

使用以下设置

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注