All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.databricks.labs.automl.utils.SeedConverters.scala Maven / Gradle / Ivy

package com.databricks.labs.automl.utils

import com.databricks.labs.automl.params._

import scala.collection.mutable.ListBuffer

trait SeedConverters {

  def generateXGBoostConfig(configMap: Map[String, Any]): XGBoostConfig = {
    XGBoostConfig(
      alpha = configMap("alpha").asInstanceOf[String].toDouble,
      eta = configMap("eta").asInstanceOf[String].toDouble,
      gamma = configMap("gamma").asInstanceOf[String].toDouble,
      lambda = configMap("lambda").asInstanceOf[String].toDouble,
      maxDepth = configMap("maxDepth").asInstanceOf[String].toInt,
      maxBins = configMap("maxBins").asInstanceOf[String].toInt,
      subSample = configMap("subSample").asInstanceOf[String].toDouble,
      minChildWeight = configMap("minChildWeight").asInstanceOf[String].toDouble,
      numRound = configMap("numRound").asInstanceOf[String].toInt,
      trainTestRatio = configMap("trainTestRatio").asInstanceOf[String].toDouble
    )
  }

  def generateRandomForestConfig(
    configMap: Map[String, Any]
  ): RandomForestConfig = {
    RandomForestConfig(
      numTrees = configMap("numTrees").asInstanceOf[String].toInt,
      impurity = configMap("impurity").asInstanceOf[String],
      maxBins = configMap("maxBins").asInstanceOf[String].toInt,
      maxDepth = configMap("maxDepth").asInstanceOf[String].toInt,
      minInfoGain = configMap("minInfoGain").asInstanceOf[String].toDouble,
      subSamplingRate =
        configMap("subSamplingRate").asInstanceOf[String].toDouble,
      featureSubsetStrategy =
        configMap("featureSubsetStrategy").asInstanceOf[String]
    )
  }

  def generateMLPCConfig(configMap: Map[String, Any]): MLPCConfig = {

    var layers = ListBuffer[Int]()
    val stringLayers = configMap("layers").asInstanceOf[Array[String]]
    stringLayers.foreach { x =>
      layers += x.toInt
    }

    MLPCConfig(
      layers = layers.result.toArray,
      maxIter = configMap("maxIter").asInstanceOf[String].toInt,
      solver = configMap("solver").asInstanceOf[String],
      stepSize = configMap("stepSize").asInstanceOf[String].toDouble,
      tolerance = configMap("tolerance").asInstanceOf[String].toDouble
    )
  }

  def generateTreesConfig(configMap: Map[String, Any]): TreesConfig = {
    TreesConfig(
      impurity = configMap("impurity").asInstanceOf[String],
      maxBins = configMap("maxBins").asInstanceOf[String].toInt,
      maxDepth = configMap("maxDepth").asInstanceOf[String].toInt,
      minInfoGain = configMap("minInfoGain").asInstanceOf[String].toDouble,
      minInstancesPerNode =
        configMap("minInstancesPerNode").asInstanceOf[String].toInt
    )
  }

  def generateGBTConfig(configMap: Map[String, Any]): GBTConfig = {
    GBTConfig(
      impurity = configMap("impurity").asInstanceOf[String],
      lossType = configMap("lossType").asInstanceOf[String],
      maxBins = configMap("maxBins").asInstanceOf[String].toInt,
      maxDepth = configMap("maxDepth").asInstanceOf[String].toInt,
      maxIter = configMap("maxIter").asInstanceOf[String].toInt,
      minInfoGain = configMap("minInfoGain").asInstanceOf[String].toDouble,
      minInstancesPerNode =
        configMap("minInstancesPerNode").asInstanceOf[String].toInt,
      stepSize = configMap("stepSize").asInstanceOf[String].toDouble
    )
  }

  def generateLogisticRegressionConfig(
    configMap: Map[String, Any]
  ): LogisticRegressionConfig = {
    LogisticRegressionConfig(
      elasticNetParams =
        configMap("elasticNetParams").asInstanceOf[String].toDouble,
      fitIntercept = configMap("fitIntercept").asInstanceOf[String].toBoolean,
      maxIter = configMap("maxIter").asInstanceOf[String].toInt,
      regParam = configMap("regParam").asInstanceOf[String].toDouble,
      standardization =
        configMap("standardization").asInstanceOf[String].toBoolean,
      tolerance = configMap("tolerance").asInstanceOf[String].toDouble
    )
  }

  def generateLinearRegressionConfig(
    configMap: Map[String, Any]
  ): LinearRegressionConfig = {
    LinearRegressionConfig(
      elasticNetParams =
        configMap("elasticNetParams").asInstanceOf[String].toDouble,
      fitIntercept = configMap("fitIntercept").asInstanceOf[String].toBoolean,
      loss = configMap("loss").asInstanceOf[String],
      maxIter = configMap("maxIter").asInstanceOf[String].toInt,
      regParam = configMap("regParam").asInstanceOf[String].toDouble,
      standardization =
        configMap("standardization").asInstanceOf[String].toBoolean,
      tolerance = configMap("tolerance").asInstanceOf[String].toDouble
    )
  }

  def generateSVMConfig(configMap: Map[String, Any]): SVMConfig = {
    SVMConfig(
      fitIntercept = configMap("fitIntercept").asInstanceOf[String].toBoolean,
      maxIter = configMap("maxIter").asInstanceOf[String].toInt,
      regParam = configMap("regParam").asInstanceOf[String].toDouble,
      standardization =
        configMap("standardization").asInstanceOf[String].toBoolean,
      tolerance = configMap("tolerance").asInstanceOf[String].toDouble
    )
  }

  def generateLightGBMConfig(configMap: Map[String, Any]): LightGBMConfig = {
    LightGBMConfig(
      baggingFraction =
        configMap("baggingFraction").asInstanceOf[String].toDouble,
      baggingFreq = configMap("baggingFreq").asInstanceOf[String].toInt,
      featureFraction =
        configMap("featureFraction").asInstanceOf[String].toDouble,
      learningRate = configMap("learningRate").asInstanceOf[String].toDouble,
      maxBin = configMap("maxBin").asInstanceOf[String].toInt,
      maxDepth = configMap("maxDepth").asInstanceOf[String].toInt,
      minSumHessianInLeaf =
        configMap("minSumHessianInLeaf").asInstanceOf[String].toDouble,
      numIterations = configMap("numIterations").asInstanceOf[String].toInt,
      numLeaves = configMap("numLeaves").asInstanceOf[String].toInt,
      boostFromAverage =
        configMap("boostFromAverage").asInstanceOf[String].toBoolean,
      lambdaL1 = configMap("lambdaL1").asInstanceOf[String].toDouble,
      lambdaL2 = configMap("lambdaL2").asInstanceOf[String].toDouble,
      alpha = configMap("alpha").asInstanceOf[String].toDouble,
      boostingType = configMap("boostingType").asInstanceOf[String]
    )
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy