最近在数据的与处理中遇到了VarianceThreshold操作,这是sklearn.feature_selection,就是数据特征值选择,为什么会有这种操作呢,其实这是在进行数据分析之前的一种数据预处理作业,以为我们遇到的数据是复杂多变的,有可能会存在很多个特征值,但是并不是每一个特征值都能很好的体现区分度,那么这样的特征值就不存在分析的价值了。
假设某特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。如果100%都是1,那这个特征就没意义了。当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用。而且实际当中,一般不太会有95%以上都取某个值的特征存在,所以这种方法虽然简单但是不太好用。可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的的特征选择方法中选择合适的进行进一步的特征选择。
————————————————
版权声明:本文为CSDN博主「Danker01」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42575020/article/details/82887014
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import numpy as np
from sklearn.preprocessing import MinMaxScaler,StandardScaler
from sklearn.feature_selection import VarianceThreshold
import pandas as pd
def Character():
#过滤低方差特征
#1,获取数据
data = pd.read_csv(“simlization.txt”)
# 2,实例化一个特征
new_data = data.iloc[:, :3]
transfor = VarianceThreshold(threshold=5)
transfor.fit_transform(new_data)
print("data:\n", new_data)
return None
if name == ‘main’:
Character()