Разница между Mllib-LinearSVC в Apache Spark и LinearSVC у Склеарна - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над проблемой классификации текста multi-class, для которой я реализовал свою модель, используя библиотеку sklearn LinearSVC в python с loss = 'hinge' и другими параметрами по умолчанию, и пока она дает удовлетворительные результаты.

Шаги, выполняемые перед передачей данных:

  1. Удаление специальных символов.
  2. Удаление стоп-слов.
  3. Стемминг.

Кодpart:

vectorizerPipe = Pipeline([('tfidf', TfidfVectorizer(lowercase=True,
        stop_words='english')),
('classification', OneVsRestClassifier(LinearSVC(penalty='l2', loss='hinge'))),])

Теперь я хочу реализовать то же самое в Spark, используя MLlib в Scala.Я закончил тренировку и тестирование.Но результаты в основном разные.

val classifier = new LinearSVC()
  .setMaxIter(1000)
  .setRegParam(0.01)
  .setThreshold(0.5)
  .setTol(1E-4)

val ovr = new OneVsRest().setClassifier(classifier)

val pipeline = new Pipeline()
      .setStages(Array(tokenizer, stopword_removal, stemming, hashingTF, idf, indexer, ovr))

Для сравнения, python дает более правильные результаты.

Я использовал приведенную ниже статью, чтобы понять основное различие между обеими библиотеками и применил их.Но нет большой разницы в результатах.

should-mllib-linearsvc-ведут себя так же, как-scik

Примечание: я использую искру2.2.0 и Linear SVC в OneVsRest Classifier

Структура данных:

----------------------------------------------------------------------------------------
| product_title          | Key_value_pairs                               | taxonomy_id (Output) |
----------------------------------------------------------------------------------------
  Samsung S7 Edge        | Color:black,Display Size:5.5 inch,Internal    | 211 
                          Storage:128 GB, RAM:4 GB,Primary Camera:12 MP  

  Case cover Honor 8     | Color:transparent,Height:15 mm,width:22 mm    | 212 

  Ruggers Men's T-Shirt  | Size:L,ideal for:men,fit:regular,             | 111
                          sleeve:half sleeve

  Optimum Nutrition Gold | Flavor:chocolate,form:powder,size:34 gm       | 311
  Standard Whey Protein  

Я хочу понять основное различие между двумя библиотеками, а также какие параметры необходимо изменить вLinearSVC MlLib, чтобы получить аналогичные результаты.

Любая помощь очень ценится.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...