• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

特征选择(1)–基于方差

ml admin 3年前 (2017-04-23) 1879次浏览 0个评论 扫描二维码

特征选择博文均来自于 Sklearn 机器学习库,基本上对应翻译而来,训练模型的好坏一定程度上受特征提取的影响,因此特征提取是重要的一步。

Removing features with low variance

【去除方差较小的特征,说白了就是当前特征对应不同的个体而言特征值基本上都是相差不大,因此不具备区分能力】

VarianceThreshold is a simple baseline approach to feature selection. It removes all features whose variance doesn’t meet some threshold. By default, it removes all zero-variance features, i.e. features that have the same value in all samples.

VarianceThreshold 是特征选取很简单的一种衡量指标,本质上就是去除方差没有达到制定标准值对应的特征,默认是移除 0 方差的特征(就是所有的样本对应特征值都是同一个值)】

As an example, suppose that we have a dataset with boolean features, and we want to remove all features that are either one or zero (on or off) in more than 80% of the samples. Boolean features are Bernoulli random variables, and the variance of such variables is given by

【举例如下,假设我们有一个布尔类型的数据集,现在想去除其中包含 0 或者 1 占据样本总数超过 80%的特征,考虑到样本是 0-1 二项分布,对应的方差计算公式如下】

\mathrm{Var}[X] = p(1 - p)

so we can select using the threshold .8 * (1 - .8):

>>>

>>> from sklearn.feature_selection import VarianceThreshold
>>> X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
>>> sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
>>> sel.fit_transform(X)
array([[0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [1, 0],
       [1, 1]])

As expected, VarianceThreshold has removed the first column, which has a probability p = 5/6 > .8 of containing a zero.


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明特征选择(1)–基于方差
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!