本文整理汇总了Scala中org.apache.spark.ml.feature.IndexToString类的典型用法代码示例。如果您正苦于以下问题:Scala IndexToString类的具体用法?Scala IndexToString怎么用?Scala IndexToString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IndexToString类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: LocalIndexToString
//设置package包名称以及导入依赖的类
package io.hydrosphere.spark_ml_serving.preprocessors
import io.hydrosphere.spark_ml_serving._
import org.apache.spark.SparkException
import org.apache.spark.ml.feature.IndexToString
class LocalIndexToString(override val sparkTransformer: IndexToString) extends LocalTransformer[IndexToString] {
override def transform(localData: LocalData): LocalData = {
localData.column(sparkTransformer.getInputCol) match {
case Some(column) =>
val labels = sparkTransformer.getLabels
val indexer = (index: Double) => {
val idx = index.toInt
if (0 <= idx && idx < labels.length) {
labels(idx)
} else {
throw new SparkException(s"Unseen index: $index ??")
}
}
val newColumn = LocalDataColumn(sparkTransformer.getOutputCol, column.data map {
case d: Double => indexer(d)
case d => throw new IllegalArgumentException(s"Unknown data to index: $d")
})
localData.withColumn(newColumn)
case None => localData
}
}
}
object LocalIndexToString extends LocalModel[IndexToString] {
override def load(metadata: Metadata, data: Map[String, Any]): IndexToString = {
val ctor = classOf[IndexToString].getDeclaredConstructor(classOf[String])
ctor.setAccessible(true)
ctor
.newInstance(metadata.uid)
.setLabels(metadata.paramMap("labels").asInstanceOf[List[String]].to[Array])
.setInputCol(metadata.paramMap("inputCol").asInstanceOf[String])
.setOutputCol(metadata.paramMap("outputCol").asInstanceOf[String])
}
override implicit def getTransformer(transformer: IndexToString): LocalTransformer[IndexToString] = new LocalIndexToString(transformer)
}
示例2: LocalIndexToString
//设置package包名称以及导入依赖的类
package io.hydrosphere.mist.api.ml.preprocessors
import io.hydrosphere.mist.api.ml._
import org.apache.spark.SparkException
import org.apache.spark.ml.feature.IndexToString
class LocalIndexToString(override val sparkTransformer: IndexToString) extends LocalTransformer[IndexToString] {
override def transform(localData: LocalData): LocalData = {
localData.column(sparkTransformer.getInputCol) match {
case Some(column) =>
val labels = sparkTransformer.getLabels
val indexer = (index: Double) => {
val idx = index.toInt
if (0 <= idx && idx < labels.length) {
labels(idx)
} else {
throw new SparkException(s"Unseen index: $index ??")
}
}
val newColumn = LocalDataColumn(sparkTransformer.getOutputCol, column.data map {
case d: Double => indexer(d)
case d => throw new IllegalArgumentException(s"Unknown data to index: $d")
})
localData.withColumn(newColumn)
case None => localData
}
}
}
object LocalIndexToString extends LocalModel[IndexToString] {
override def load(metadata: Metadata, data: Map[String, Any]): IndexToString = {
val ctor = classOf[IndexToString].getDeclaredConstructor(classOf[String])
ctor.setAccessible(true)
ctor
.newInstance(metadata.uid)
.setLabels(metadata.paramMap("labels").asInstanceOf[List[String]].to[Array])
.setInputCol(metadata.paramMap("inputCol").asInstanceOf[String])
.setOutputCol(metadata.paramMap("outputCol").asInstanceOf[String])
}
override implicit def getTransformer(transformer: IndexToString): LocalTransformer[IndexToString] = new LocalIndexToString(transformer)
}
示例3: IndexToStringJob
//设置package包名称以及导入依赖的类
import io.hydrosphere.mist.api._
import io.hydrosphere.mist.api.ml._
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.feature.{IndexToString, StringIndexer}
import org.apache.spark.sql.SparkSession
object IndexToStringJob extends MLMistJob {
def session: SparkSession = SparkSession
.builder()
.appName(context.appName)
.config(context.getConf)
.getOrCreate()
def train(savePath: String): Map[String, Any] = {
val df = session.createDataFrame(Seq(
(0, "a"),
(1, "b"),
(2, "c"),
(3, "a"),
(4, "a"),
(5, "c")
)).toDF("id", "category")
val indexer = new StringIndexer()
.setInputCol("category")
.setOutputCol("categoryIndex")
.fit(df)
val converter = new IndexToString()
.setInputCol("categoryIndex")
.setOutputCol("originalCategory")
val pipeline = new Pipeline().setStages(Array(indexer, converter))
val model = pipeline.fit(df)
model.write.overwrite().save("models/index")
Map.empty[String, Any]
}
def serve(modelPath: String, features: List[Double]): Map[String, Any] = {
import LocalPipelineModel._
val features = List(
"a", "b", "c", "c"
)
val pipeline = PipelineLoader.load(modelPath)
val data = LocalData(
LocalDataColumn("category", features)
)
val result: LocalData = pipeline.transform(data)
Map("result" -> result.select("category", "categoryIndex").toMapList)
}
}
示例4: DTreeClassificationJob
//设置package包名称以及导入依赖的类
import io.hydrosphere.mist.api._
import io.hydrosphere.mist.api.ml._
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.DecisionTreeClassifier
import org.apache.spark.ml.feature.{IndexToString, StringIndexer, VectorIndexer}
import org.apache.spark.sql.SparkSession
object DTreeClassificationJob extends MLMistJob{
def session: SparkSession = SparkSession
.builder()
.appName(context.appName)
.config(context.getConf)
.getOrCreate()
def train(datasetPath: String, savePath: String): Map[String, Any] = {
val data = session.read.format("libsvm").load(datasetPath)
val Array(training, _) = data.randomSplit(Array(0.7, 0.3))
val labelIndexer = new StringIndexer()
.setInputCol("label")
.setOutputCol("indexedLabel")
.fit(data)
val featureIndexer = new VectorIndexer()
.setInputCol("features")
.setOutputCol("indexedFeatures")
.setMaxCategories(4)// features with > 4 distinct values are treated as continuous.
.fit(data)
val dt = new DecisionTreeClassifier()
.setLabelCol("indexedLabel")
.setFeaturesCol("indexedFeatures")
val labelConverter = new IndexToString()
.setInputCol("prediction")
.setOutputCol("predictedLabel")
.setLabels(labelIndexer.labels)
val pipeline = new Pipeline()
.setStages(Array(labelIndexer, featureIndexer, dt, labelConverter))
val model = pipeline.fit(training)
model.write.overwrite().save(savePath)
Map.empty[String, Any]
}
def serve(modelPath: String, features: List[Array[Double]]): Map[String, Any] = {
import LocalPipelineModel._
val pipeline = PipelineLoader.load(modelPath)
val data = LocalData(
LocalDataColumn("features", features)
)
val result: LocalData = pipeline.transform(data)
Map("result" -> result.select("predictedLabel").toMapList)
}
}
示例5: BaseTransformerConverter
//设置package包名称以及导入依赖的类
package org.apache.spark.ml.mleap.converter.runtime
import com.truecar.mleap.runtime.transformer
import org.apache.spark.ml.PipelineModel
import org.apache.spark.ml.classification.RandomForestClassificationModel
import org.apache.spark.ml.feature.{IndexToString, StandardScalerModel, StringIndexerModel, VectorAssembler}
import org.apache.spark.ml.mleap.classification.SVMModel
import org.apache.spark.ml.mleap.converter.runtime.classification.{RandomForestClassificationModelToMleap, SupportVectorMachineModelToMleap}
import org.apache.spark.ml.mleap.converter.runtime.feature.{IndexToStringToMleap, StandardScalerModelToMleap, StringIndexerModelToMleap, VectorAssemblerModelToMleap}
import org.apache.spark.ml.mleap.converter.runtime.regression.{LinearRegressionModelToMleap, RandomForestRegressionModelToMleap}
import org.apache.spark.ml.regression.{LinearRegressionModel, RandomForestRegressionModel}
trait BaseTransformerConverter extends SparkTransformerConverter {
// regression
implicit val mleapLinearRegressionModelToMleap: TransformerToMleap[LinearRegressionModel, transformer.LinearRegressionModel] =
addConverter(LinearRegressionModelToMleap)
implicit val mleapRandomForestRegressionModelToMleap: TransformerToMleap[RandomForestRegressionModel, transformer.RandomForestRegressionModel] =
addConverter(RandomForestRegressionModelToMleap)
// classification
implicit val mleapRandomForestClassificationModelToMleap: TransformerToMleap[RandomForestClassificationModel, transformer.RandomForestClassificationModel] =
addConverter(RandomForestClassificationModelToMleap)
implicit val mleapSupportVectorMachineModelToMleap: TransformerToMleap[SVMModel, transformer.SupportVectorMachineModel] =
addConverter(SupportVectorMachineModelToMleap)
//feature
implicit val mleapIndexToStringToMleap: TransformerToMleap[IndexToString, transformer.ReverseStringIndexerModel] =
addConverter(IndexToStringToMleap)
implicit val mleapStandardScalerModelToMleap: TransformerToMleap[StandardScalerModel, transformer.StandardScalerModel] =
addConverter(StandardScalerModelToMleap)
implicit val mleapStringIndexerModelToMleap: TransformerToMleap[StringIndexerModel, transformer.StringIndexerModel] =
addConverter(StringIndexerModelToMleap)
implicit val mleapVectorAssemblerToMleap: TransformerToMleap[VectorAssembler, transformer.VectorAssemblerModel] =
addConverter(VectorAssemblerModelToMleap)
// other
implicit val mleapPipelineModelToMleap: TransformerToMleap[PipelineModel, transformer.PipelineModel] =
addConverter(PipelineModelToMleap(this))
}
object BaseTransformerConverter extends BaseTransformerConverter