关于scikit-learn中互信息(MI)与F-score精确数学公式的问询
scikit-learn示例中互信息(MI)与F-score的精确数学公式
一、互信息(Mutual Information, MI)
针对回归任务中连续型特征与目标变量的互信息,公式为:
$$I(X;Y) = \int_{Y} \int_{X} p(x,y) \log\left(\frac{p(x,y)}{p(x)p(y)}\right) dxdy$$
其中:
- $p(x,y)$:特征$X$与目标$Y$的联合概率密度函数
- $p(x)$:特征$X$的边缘概率密度函数
- $p(y)$:目标$Y$的边缘概率密度函数
scikit-learn的mutual_info_regression通过非参数方法(如k近邻)估计上述概率密度,进而计算互信息值。
二、F-score(回归任务特征选择)
1. 皮尔逊相关系数(对应r_regression计算逻辑)
先计算单个特征$X$与目标$Y$的皮尔逊相关系数:
$$r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2 \sum_{i=1}^{n} (y_i - \bar{y})^2}}$$
其中:
- $n$:样本总数
- $x_i$:第$i$个样本的特征值,$\bar{x}$为特征$X$的样本均值
- $y_i$:第$i$个样本的目标值,$\bar{y}$为目标$Y$的样本均值
2. 相关系数转F-score
将皮尔逊相关系数$r$转换为F统计量:
$$F = \frac{r^2 / 1}{(1 - r^2) / (n - 2)}$$
其中分子自由度$df_1=1$,分母自由度$df_2=n-2$。
3. F-score转p值
基于F分布计算p值,代表“特征与目标无线性相关”原假设下,观测到当前F值或更极端值的概率:
$$p = 1 - CDF_{F(df_1, df_2)}(F)$$
这里$CDF_{F(df_1, df_2)}$是自由度为$(df_1, df_2)$的F分布累积分布函数。
内容的提问来源于stack exchange,提问作者okamel
相关产品推荐
相关产品推荐

