Advertisement
Guest User

Untitled

a guest
May 17th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 2.31 KB | None | 0 0
  1. //Scala
  2. import org.apache.spark.mllib.regression.LabeledPoint
  3. import org.apache.spark.mllib.feature.HashingTF
  4. import org.apache.spark.mllib.classification.LogisticRegressionWithSGD
  5.  
  6. val spam = sc.textFile("/FileStore/tables/spam.txt")
  7. val ham = sc.textFile("/FileStore/tables/ham.txt")
  8.  
  9. //Создаем экземпляр HashingTF для отображения текста электронных писем в векторы с 230000 признаков.
  10. val tf = new HashingTF(numFeatures = 230000)
  11.  
  12. //Разбиваем каждое электронное письмо на слова и каждое слово отображаем в один признак.
  13. val spamFeatures = spam.map(email => tf.transform(email.split(" ")))
  14. val hamFeatures = ham.map(email => tf.transform(email.split(" ")))
  15.  
  16. //Создаем наборы данных LabeledPoint для примеров, дающих положительную реакцию (спам) и отрицательную (релевантные письма).
  17. val positiveExamples = spamFeatures.map(features => LabeledPoint(1, features))
  18. val negativeExamples = hamFeatures.map(features => LabeledPoint(0, features))
  19. val trainingData = positiveExamples ++ negativeExamples
  20.  
  21. //Выполняем кэширование обучающей выборки, потому что алгоритм Logistic Regression является циклическим.
  22. calatrainingData.cache()
  23.  
  24. //Проводим обучение модели с помощью логистической регрессии методом SGD.
  25. val lrLearner = new LogisticRegressionWithSGD()
  26. val model = lrLearner.run(trainingData)
  27.  
  28. //Проверяем положительный и отрицательный экземпляры. Сначала применяем то же преобразование HashingTF, чтобы получить векторы признаков, затем применяем модель.
  29. val posTestExample = tf.transform("Oh my god, you're a winner! To take your price please send 3$ to this card".split(" "))
  30. val negTestExample = tf.transform("Hi Dad, I started studying Spark the other ...".split(" "))
  31. println(s"Prediction for positive test example: ${model.predict(posTestExample)}")
  32. println(s"Prediction for negative test example: ${model.predict(negTestExample)}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement