【发布时间】:2026-01-24 08:50:01
【问题描述】:
我有一个看起来像这样的数据框 (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 - 请协助。
【问题讨论】:
-
您目前在哪里尝试进行此翻译?
-
我目前对每个国家/地区的数据子集运行 SVC 算法,然后将它们附加在一起,但效率不高。
标签: python dataframe pandas-groupby svm