特征选择主要就是进行这两步操作
去除特征
我们不仅要添加新的特征,当特征不符合时我们还要去除特征。下面列举了一些可能的去除特征的原因。
注意:特征不等于信息
特征实际上是信息特点的一个载体,他和信息实际上是两个概念。不要搞混。我们希望有尽量少的特征和尽量多的信息。这样在分类的时候可以减少出错概率。
如果你只有特征而没有信息,那就应该删除这个特征,因为这个特征很有可能会引起算法漏洞。这个特征对应的指标会十分强烈,他没有对应的自己的信息,信息通常是通过算法人为添加的。最后拟合的时候可能就对应的100%的正确率,而这通常情况下是不可能发生的。
特征选择
单变量特征选择
在 sklearn 中自动选择特征有多种辅助方法。多数方法都属于单变量特征选择的范畴,即独立对待每个特征并询问其在分类或回归中的能力。
sklearn 中有两大单变量特征选择工具:SelectPercentile 和 SelectKBest。 两者之间的区别从名字就可以看出:SelectPercentile 选择最强大的 X% 特征(X 是参数),而 SelectKBest 选择 K 个最强大的特征(K 是参数)。
TfIdf向量器中的特征选择
### text vectorization--go from strings to lists of numbers
# df是document frequency的缩写
# max_df的意思是最大丢弃频率,也就是说在50%的文件中都出现这一个单词,那么这个单词会被丢弃
vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5,