pyspark卡方检验用于特征选择

2021-07-24  本文已影响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值
上一篇 下一篇

猜你喜欢

热点阅读