处理Spark中的不平衡类

时间:2017-10-15 18:34:35

标签: apache-spark apache-spark-mllib

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

1 个答案:

答案 0 :(得分:0)

你可以在逻辑回归中尝试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')