Python: Как перенести функцию R, которая применяет функцию SVM для группировки по фрейму данных - PullRequest
0 голосов
/ 30 марта 2020

У меня есть кадр данных (df), который выглядит следующим образом:

   Value Country ID
1   21   RU    AAAU9001025
2   24   NG    AAAU9001848
3   17   EG    ACLU2799370
4   2    EG    ACLU2799370
5   56   RU    ACLU2799370 

Я использую классификатор SVM для обнаружения выбросов по значению для каждой страны и на основе сравнительно небольшой выборки (максимум строк) : 5K), и я указываю, является ли это выбросом в каждом ряду. Таким образом, мой вывод - это фрейм данных с дополнительным логическим столбцом, который указывает, является ли его выброс:

    Value Country ID    SVM
1   21  RU  AAAU9001025 FALSE
2   24  NG  AAAU9001848 FALSE
3   17  EG  ACLU2799370 FALSE
4   2   EG  ACLU2799370 TRUE
5   56  RU  ACLU2799370 TRUE
6   25  EG  AMFU3022141 FALSE

Я использую следующий код в R:

library(e1071)

SVM_f = function(x,limit=5000){
N = min(c(limit,length(x)))
mdl = svm(x[sample(length(x),N)],
nu=0.98, type="one-classification", kernel="polynomial")
predict(mdl,x)
}

res = by(df,df$Country,function(x){
data.frame(x,SVM = SVM_f(x$Value))
})

res = do.call(rbind,res)

Теперь мне нужно мигрировать этот код для Python - пожалуйста, помогите.

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете просто использовать Rmarkdown , где вы можете использовать собственный python язык, выполняемый в среде R, так что вы можете оставить код R, как указано выше.

Вот подробнее c ссылка .

...