美文网首页
pyspark卡方检验用于特征选择

pyspark卡方检验用于特征选择

作者: 米斯特芳 | 来源:发表于2021-07-24 12:08 被阅读0次

    卡方检验特征选择原理

    计算特征变量与因变量的卡方独立性检验统计量,如果特征变量与因变量独立,说明其对预测因变量效果差。
    根据p值从大到小(p值越大,越有可能不独立,)取设定的K个变量即可
    在机器学习的决策树算法中,可以根据卡方独立性检验、基尼系数(CART)、信息增益(ID3)、信息增益率(C4.5)进行选择,一般来说,使用CART或C4.5较好

    from pyspark.sql import SparkSession
    from pyspark.ml.feature import ChiSqSelector
    from pyspark.ml.linalg import Vectors
    
    spark = SparkSession\
        .builder\
        .appName("ChiSqSelectorExample")\
        .getOrCreate()
    
    df = spark.createDataFrame([
        (7, Vectors.dense([0.0, 0.0, 18.0, 1.0]), 1.0,),
        (8, Vectors.dense([0.0, 1.0, 12.0, 0.0]), 0.0,),
        (9, Vectors.dense([1.0, 0.0, 15.0, 0.1]), 0.0,)], ["id", "features", "clicked"])
    # 假设我们使用2个变量预测是否点击
    selector = ChiSqSelector(numTopFeatures=2, featuresCol="features",
                             outputCol="selectedFeatures", labelCol="clicked")
    
    result = selector.fit(df).transform(df)
    
    print("ChiSqSelector output with top %d features selected" % selector.getNumTopFeatures())
    result.show()
    
    # sklearn中实现
    from sklearn.feature_selection import SelectKBest
    selector=SelectKBest(score_func='chi2',k=2)
    fit=selector.fit(X,y)
    newX=fit.transform(X)# 选择变量后的数据
    fit.scores_# p值
    

    相关文章

      网友评论

          本文标题:pyspark卡方检验用于特征选择

          本文链接:https://www.haomeiwen.com/subject/ezhpmltx.html