根据给定方差的阈值,删除掉值变化小的维度,以此降低数据规模。当把阈值设置为0的时候,就会删除没有变化的数据。
示例
import numpy as np
from sklearn.feature_selection import VarianceThreshold
def drop_min_value(data):
"""根据方差去除变化小的特征"""
sel = VarianceThreshold(threshold=0) # 方差阈值,去掉方差为0的数据,也就是去除一个值的数据
result = sel.fit_transform(data)
return result
if __name__ == '__main__':
X = np.array([
[0, 0, 1],
[0, 1, 0],
[0, 0, 0],
[0, 1, 1]])
new_x = drop_min_value(X)
print(new_x) # 把第1列删掉了
sklearn文档:https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.VarianceThreshold.html