php 方差函数,方差阈值 · PHP-ML中文文档 · 看云

## 方差阈值

> `VarianceThreshold`是一种简单的特征选择基线方法。它会删除方差不符合某个阈值的所有要素。默认情况下,它会删除所有零方差要素,即在所有样本中具有相同值的要素。

### 构造函数参数

`$threshold`(float) - 方差低于此阈值的要素将被删除(默认为0.0)

```

use Phpml\FeatureSelection\VarianceThreshold;

$transformer = new VarianceThreshold(0.15);

```

*****

### 使用示例

例如,假设我们有一个具有布尔特征的数据集,并且我们希望删除80%以上样本中的一个或零(打开或关闭)的所有特征。布尔特征是伯努利随机变量,这些变量的方差由下式给出

```

Var\[X\] = p(1 - p)

```

所以我们可以选择使用阈值.8 *(1 - .8):

```

use Phpml\FeatureSelection\VarianceThreshold;

$samples = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]];

$transformer = new VarianceThreshold(0.8 * (1 - 0.8));

$transformer->fit($samples);

$transformer->transform($samples);

/*

$samples = [[0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1]];

*/

```

## Pipeline

`VarianceThreshold`实现了`Transformer`接口,因此它可以用作`pipeline`的一部分:

```

use Phpml\FeatureSelection\VarianceThreshold;

use Phpml\Classification\SVC;

use Phpml\FeatureExtraction\TfIdfTransformer;

use Phpml\Pipeline;

$transformers = [

new TfIdfTransformer(),

new VarianceThreshold(0.1)

];

$estimator = new SVC();

$pipeline = new Pipeline($transformers, $estimator);

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值