如果一个特征不发散,即方差接近0,就说明样本在这个特征上基本没有差异,这个特征对于样本的区分没有作用,使用方差选择法,计算各个特征的方差,然后根据阈值选择方差大于阈值的特征。
from sklearn.feature_selection import VarianceThreshold
from sklearn.datasets import load_iris
iris = load_iris()
# 特征选择是在数据分析和简单建模中最常用的特征降维手段。其比较简单粗暴,即映射函数直接将不重要的特征删除,
# 不过这样会造成特征信息的丢失,不利于模型精度。
# 特征是否发散:
# 如果一个特征不发散,即方差接近0,就说明样本在这个特征上基本没有差异,这个特征对于样本的区分没有作用
# 使用方差选择法,先要计算各个特征的方差,然后根据阈值选择方差大于阈值的特征。
# 参数threshold为方差的阈值
print("iris.data:\n", iris.data)
data_var = VarianceThreshold(threshold=3).fit_transform(iris.data)
print(data_var)
运行结果:
iris.data:
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]
[5.4 3.9 1.7 0.4]
[4.6 3.4 1.4 0.3]
[5. 3.4 1.5 0.2]
[4.4 2.9 1.4 0.2]
[4.9 3.1 1.5 0.1]
[5.4 3.7 1.5 0.2]
[4.8 3.4 1.6 0.2]
[4.8 3. 1.4 0.1]
[4.3 3. 1.1 0.1]
[5.8 4. 1.2 0.2]
[5.7 4.4 1.5 0.4]
[5.4 3.9 1.3 0.4]
[5.1 3.5 1.4 0.3]
[5.7 3.8 1.7 0.3]
[5.1 3.8 1.5 0.3]
[5.4 3.4 1.7 0.2]
[5.1 3.7 1.5 0.4]
[4.6 3.6 1. 0.2]
[5.1 3.3 1.7 0.5]
[4.8 3.4 1.9 0.2]
[5. 3. 1.6 0.2]
[5. 3.4 1.6 0.4]
[5.2 3.5 1.5 0.2]
[5.2 3.4 1.4 0.2]
[4.7 3.2 1.6 0.2]
[4.8 3.1 1.6 0.2]
[5.4 3.4 1.5 0.4]
[5.2 4.1 1.5 0.1]
[5.5 4.2 1.4 0.2]
[4.9 3.1 1.5 0.2]
[5. 3.2 1.2 0.2]
[5.5 3.5 1.3 0.2]
[4.9 3.6 1.4 0.1]
[4.4 3. 1.3 0.2]
[5.1 3.4 1.5 0.2]
[5. 3.5 1.3 0.3]
[4.5 2.3 1.3 0.3]
[4.4 3.2 1.3 0.2]
[5. 3.5 1.6 0.6]
[5.1 3.8 1.9 0.4]
[4.8 3. 1.4 0.3]
[5.1 3.8 1.6 0.2]
[4.6 3.2 1.4 0.2]
[5.3 3.7 1.5 0.2]
[5. 3.3 1.4 0.2]
[7. 3.2 4.7 1.4]
[6.4 3.2 4.5 1.5]
[6.9 3.1 4.9 1.5]
[5.5 2.3 4. 1.3]
[6.5 2.8 4.6 1.5]
[5.7 2.8 4.5 1.3]
[6.3 3.3 4.7 1.6]
[4.9 2.4 3.3 1. ]
[6.6 2.9 4.6 1.3]
[5.2 2.7 3.9 1.4]
[5. 2. 3.5 1. ]
[5.9 3. 4.2 1.5]
[6. 2.2 4. 1. ]
[6.1 2.9 4.7 1.4]
[5.6 2.9 3.6 1.3]
[6.7 3.1 4.4 1.4]
[5.6 3. 4.5 1.5]
[5.8 2.7 4.1 1. ]
[6.2 2.2 4.5 1.5]
[5.6 2.5 3.9 1.1]
[5.9 3.2 4.8 1.8]
[6.1 2.8 4. 1.3]
[6.3 2.5 4.9 1.5]
[6.1 2.8 4.7 1.2]
[6.4 2.9 4.3 1.3]
[6.6 3. 4.4 1.4]
[6.8 2.8 4.8 1.4]
[6.7 3. 5. 1.7]
[6. 2.9 4.5 1.5]
[5.7 2.6 3.5 1. ]
[5.5 2.4 3.8 1.1]
[5.5 2.4 3.7 1. ]
[5.8 2.7 3.9 1.2]
[6. 2.7 5.1 1.6]
[5.4 3. 4.5 1.5]
[6. 3.4 4.5 1.6]
[6.7 3.1 4.7 1.5]
[6.3 2.3 4.4 1.3]
[5.6 3. 4.1 1.3]
[5.5 2.5 4. 1.3]
[5.5 2.6 4.4 1.2]
[6.1 3. 4.6 1.4]
[5.8 2.6 4. 1.2]
[5. 2.3 3.3 1. ]
[5.6 2.7 4.2 1.3]
[5.7 3. 4.2 1.2]
[5.7 2.9 4.2 1.3]
[6.2 2.9 4.3 1.3]
[5.1 2.5 3. 1.1]
[5.7 2.8 4.1 1.3]
[6.3 3.3 6. 2.5]
[5.8 2.7 5.1 1.9]
[7.1 3. 5.9 2.1]
[6.3 2.9 5.6 1.8]
[6.5 3. 5.8 2.2]
[7.6 3. 6.6 2.1]
[4.9 2.5 4.5 1.7]
[7.3 2.9 6.3 1.8]
[6.7 2.5 5.8 1.8]
[7.2 3.6 6.1 2.5]
[6.5 3.2 5.1 2. ]
[6.4 2.7 5.3 1.9]
[6.8 3. 5.5 2.1]
[5.7 2.5 5. 2. ]
[5.8 2.8 5.1 2.4]
[6.4 3.2 5.3 2.3]
[6.5 3. 5.5 1.8]
[7.7 3.8 6.7 2.2]
[7.7 2.6 6.9 2.3]
[6. 2.2 5. 1.5]
[6.9 3.2 5.7 2.3]
[5.6 2.8 4.9 2. ]
[7.7 2.8 6.7 2. ]
[6.3 2.7 4.9 1.8]
[6.7 3.3 5.7 2.1]
[7.2 3.2 6. 1.8]
[6.2 2.8 4.8 1.8]
[6.1 3. 4.9 1.8]
[6.4 2.8 5.6 2.1]
[7.2 3. 5.8 1.6]
[7.4 2.8 6.1 1.9]
[7.9 3.8 6.4 2. ]
[6.4 2.8 5.6 2.2]
[6.3 2.8 5.1 1.5]
[6.1 2.6 5.6 1.4]
[7.7 3. 6.1 2.3]
[6.3 3.4 5.6 2.4]
[6.4 3.1 5.5 1.8]
[6. 3. 4.8 1.8]
[6.9 3.1 5.4 2.1]
[6.7 3.1 5.6 2.4]
[6.9 3.1 5.1 2.3]
[5.8 2.7 5.1 1.9]
[6.8 3.2 5.9 2.3]
[6.7 3.3 5.7 2.5]
[6.7 3. 5.2 2.3]
[6.3 2.5 5. 1.9]
[6.5 3. 5.2 2. ]
[6.2 3.4 5.4 2.3]
[5.9 3. 5.1 1.8]]
[[1.4]
[1.4]
[1.3]
[1.5]
[1.4]
[1.7]
[1.4]
[1.5]
[1.4]
[1.5]
[1.5]
[1.6]
[1.4]
[1.1]
[1.2]
[1.5]
[1.3]
[1.4]
[1.7]
[1.5]
[1.7]
[1.5]
[1. ]
[1.7]
[1.9]
[1.6]
[1.6]
[1.5]
[1.4]
[1.6]
[1.6]
[1.5]
[1.5]
[1.4]
[1.5]
[1.2]
[1.3]
[1.4]
[1.3]
[1.5]
[1.3]
[1.3]
[1.3]
[1.6]
[1.9]
[1.4]
[1.6]
[1.4]
[1.5]
[1.4]
[4.7]
[4.5]
[4.9]
[4. ]
[4.6]
[4.5]
[4.7]
[3.3]
[4.6]
[3.9]
[3.5]
[4.2]
[4. ]
[4.7]
[3.6]
[4.4]
[4.5]
[4.1]
[4.5]
[3.9]
[4.8]
[4. ]
[4.9]
[4.7]
[4.3]
[4.4]
[4.8]
[5. ]
[4.5]
[3.5]
[3.8]
[3.7]
[3.9]
[5.1]
[4.5]
[4.5]
[4.7]
[4.4]
[4.1]
[4. ]
[4.4]
[4.6]
[4. ]
[3.3]
[4.2]
[4.2]
[4.2]
[4.3]
[3. ]
[4.1]
[6. ]
[5.1]
[5.9]
[5.6]
[5.8]
[6.6]
[4.5]
[6.3]
[5.8]
[6.1]
[5.1]
[5.3]
[5.5]
[5. ]
[5.1]
[5.3]
[5.5]
[6.7]
[6.9]
[5. ]
[5.7]
[4.9]
[6.7]
[4.9]
[5.7]
[6. ]
[4.8]
[4.9]
[5.6]
[5.8]
[6.1]
[6.4]
[5.6]
[5.1]
[5.6]
[6.1]
[5.6]
[5.5]
[4.8]
[5.4]
[5.6]
[5.1]
[5.1]
[5.9]
[5.7]
[5.2]
[5. ]
[5.2]
[5.4]
[5.1]]
Process finished with exit code 0