web-dev-qa-db-fra.com

Le champ "fonctionnalités" n'existe pas. SparkML

J'essaie de construire un modèle en Spark ML avec Zeppelin. Je suis nouveau dans ce domaine et je voudrais de l'aide. Je pense que je dois définir les types de données corrects pour la colonne et définir le premier colonne comme étiquette. Toute aide serait grandement appréciée, merci

val training = sc.textFile("hdfs:///ford/fordTrain.csv")
val header = training.first
val inferSchema = true  
val df = training.toDF

val lr = new LogisticRegression()
.setMaxIter(10)
.setRegParam(0.3)
.setElasticNetParam(0.8)

 val lrModel = lr.fit(df)

// Print the coefficients and intercept for multinomial logistic regression
println(s"Coefficients: \n${lrModel.coefficientMatrix}")
println(s"Intercepts: ${lrModel.interceptVector}")

Un extrait du fichier csv que j'utilise est:

IsAlert,P1,P2,P3,P4,P5,P6,P7,P8,E1,E2
0,34.7406,9.84593,1400,42.8571,0.290601,572,104.895,0,0,0,
14
Young4844

Comme vous l'avez mentionné, il manque la colonne features. Il s'agit d'un vecteur contenant toutes les variables prédictives. Vous devez le créer en utilisant VectorAssembler.

IsAlert est le libellé et toutes les autres variables (p1, p2, ...) sont des variables prédictives, vous pouvez créer une colonne features (en fait, vous pouvez la nommer comme vous voulez au lieu de features) par:

import org.Apache.spark.ml.feature.VectorAssembler
import org.Apache.spark.ml.linalg.Vectors

//creating features column
val assembler = new VectorAssembler()
  .setInputCols(Array("P1","P2","P3","P4","P5","P6","P7","P8","E1","E2"))
  .setOutputCol("features")


val lr = new LogisticRegression()
  .setMaxIter(10)
  .setRegParam(0.3)
  .setElasticNetParam(0.8)
  .setFeaturesCol("features")   // setting features column
  .setLabelCol("IsAlert")       // setting label column

//creating pipeline
val pipeline = new Pipeline().setStages(Array(assembler,lr))

//fitting the model
val lrModel = pipeline.fit(df)

Voir: https://spark.Apache.org/docs/latest/ml-features.html#vectorassembler .

13
vdep