Seer*Stat乳腺癌数据预测模型-Step3特征选择
这里特征选择我采用了三种方法,基于方差阈值,主成分分析和ExtraTreesClassifier这三种方法进行特征选择,最后通过比较同一个模型的准确率和召回率来确定最后的一些特征。
方差阈值法
方差:顾名思义,在一个单一的度量中显示分布的可变性。它显示了分布是如何分散的,并显示了平均距离的平方: 使用零方差的特性只会增加模型的复杂性,而不会增加它的预测能力。相当于这个特征没有发生变化,每个特征都是相同的值而对最后的结果并没有什么影响。
比较方差和特征归一化,将特征值除以均值来进行归一化。
from sklearn.feature_selection import VarianceThreshold
vt=VarianceThreshold()#需要将数字特征放到同一个数据集中,因为估计器无法识别分类特征。
df_number=df.select_dtypes(include="number")
#transformed=vt.fit_transform(df_number)
_ = vt.fit(df_number)
mask = vt.get_support()
df_number=df_number.loc[:,mask]
print(f'df的shape:{df.shape},df_number的shape:{df_number.shape}')
df_normal=df_number/df_number.mea