相关性分析(二)之离散特征

信息熵

基础

  1. x i x_i xi的自信息: 反映特征的某个值,具有非负、单调减、可加和不确定性。表示收到某消息获得的信息量(即,收到某消息后获得关于某事件发生的信息量),公式如下:
    I ( x i ) = f [ p ( x i ) ] = − l o g r p ( x i ) , r = 2 I(x_i)=f[p(x_i)]=-log_rp(x_i),r=2 I(xi)=f[p(xi)]=logrp(xi)r=2
  2. 条件的自信息量:
    I ( x i / y i ) = − l o g r p ( x i / y i ) , r = 2 I(x_i/y_i)=-log_rp(x_i/y_i),r=2 I(xi/yi)=logrp(xi/yi)r=2
  3. 联合自信息量:
    I ( x i y i ) = − l o g r p ( x i y i ) I(x_iy_i)=-log_rp(x_iy_i) I(xiyi)=logrp(xiyi)

I ( x i y i ) = − l o g r p ( x i y i ) = − l o g r p ( x i ) p ( y i ∣ x i ) = I ( x i ) + I ( y i ∣ x i ) I(x_iy_i)=-log_rp(x_iy_i)=-log_rp(x_i)p(y_i|x_i)=I(x_i)+I(y_i|x_i) I(xiyi)=logrp(xiyi)=logrp(xi)p(yixi)=I(xi)+I(yixi)
I ( x i y i ) = − l o g r p ( y i ) p ( x i ∣ y i ) = I ( y i ) + I ( x i ∣ y i ) I(x_iy_i)=-log_rp(y_i)p(x_i|y_i)=I(y_i)+I(x_i|y_i) I(xiyi

在Python中,可以使用sklearn.feature_selection模块中的SelectKBest方法进行相关性分析特征选择。这个方法主要是根据互信息法来选择最佳特征。使用SelectKBest方法需要注意以下两点: 1. 区分离散数据和连续数据:在进行特征选择时,需要考虑特征的类型,即特征离散型数据还是连续型数据。 2. 输出索引或特征名:SelectKBest方法的输出一般为特征的索引,但如果只获得索引对于特征量大的数据集来说不够友好,需要想办法获得特征的名称。 下面是一个示例代码,展示了如何使用SelectKBest方法进行相关性分析特征选择: ``` from sklearn.feature_selection import SelectKBest, mutual_info_classif # 创建SelectKBest对象,指定使用互信息法进行特征选择 selector = SelectKBest(score_func=mutual_info_classif, k=12) # 使用fit方法进行特征选择,传入特征矩阵X和目标变量y selector.fit(X, y) # 通过get_support方法获取选择的特征的索引 selected_features_indices = selector.get_support(indices=True) # 根据索引从原始特征矩阵X中选择特征 selected_features = X[:, selected_features_indices] ``` 这段代码演示了在相关性分析特征选择中使用互信息法的方法。首先,创建了一个SelectKBest对象,并指定score_func参数为mutual_info_classif,k参数为希望选择的特征数量。然后,使用fit方法对特征矩阵X和目标变量y进行特征选择。最后,通过get_support方法获取选择的特征的索引,再根据索引从原始特征矩阵X中选择特征。 希望以上内容对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值