在 Spark 中处理不平衡的类



我正在尝试通过 spark mllib 尝试信用卡欺诈检测数据集。与1(意味着欺诈)相比,我拥有的数据集有很多0(意味着非欺诈)。我想知道要解决像上面这样的类不平衡问题,我们是否有任何可用的 Spark 算法,例如 SMOTE。我使用逻辑回归作为模型

你可以在逻辑回归中尝试 weightCol,如下所示:

    temp = train.groupby("LabelCol").count()
    new_train = train.join(temp, "LabelCol", how = 'leftouter')
    num_labels = train_data.select(countDistinct(train_data.score)).first()[0]
    train1 = new_train.withColumn("weight",(new_train.count()/(num_labels * new_train["count"])))
    # Logistic Regrestion Initiation
    lr = LogisticRegression(weightCol = "weight", family = 'multinomial')

最新更新