在变量筛选中,通过衡量特征所包含信息量大小,决定是否删除特征,常用的指标有单一值占比、缺失值占比和方差值大小。
单一值或缺失值占比越高,表示特征包含信息量越少,不同公司设置不同阈值,一般单一值、缺失值占比高于95%,建议删除。
方差值越小,代表特征包含信息量越小。接下来详细阐述方差值的原理和Python计算代码。
一、什么是方差?
方差:衡量一组数据离散程度的统计量,它表示每个数据与这组数据平均数的差的平方的平均数。
方差越大,说明这组数据的离散程度越大。
二、方差的计算公式
假设有一组数据x1,x2,……,xn,这组数据的方差计算步骤如下:
step1:计算平均数(均值)
首先,计算这组数据的平均数(均值),公式为
其中,n是数据量,Σ是求和符号。
step2:计算方差:
然后,利用平均数,计算方差,公式为
表示每个数与平均数的差的平方之和,再除以n得到方差,这种计算方式也称总体方差。
在某些情况下,特别是样本方差(用于估计总体方差时),分母使用n-1而不是n,这是为了进行无偏估计。
因此,样本方差公式写为:
三、方差计算示例
假设有一组数据2,3,4,5,6,想计算其方差,具体步骤如下: step1:计算平均数:
step2:计算总体方差(使用n作为分母):
如果使用n-1作为分母(样本方差):
四、方差计算Python函数
假设有一组数据2,3,4,5,6,想计算其总体方差,代码如下: #计算总体方差 def population_variance(data): N = len(data) mean = sum(data) / N variance = sum((x - mean) ** 2 for x in data) / N return variance # 示例数据 data_list = [2, 3, 4, 5, 6] population_variance(data_list) 得到结果: 2.0 如果想计算样本方差,代码如下: #计算样本方差 def sample_variance(data): n = len(data) mean = sum(data) / n variance = sum((x - mean) ** 2 for x in data) / (n - 1) return variance # 示例数据 data_list = [2, 3, 4, 5, 6] sample_variance(data_list) 得到结果: 2.5 如果是对入模变量计算方差,直接把单个特征看成一个列表即可。