## 方差閾值
> `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);
```
- 基本介紹
- 關聯規則學習
- 分類
- SVC
- k近鄰算法
- NaiveBayes
- 回歸
- 最小二乘法
- SVR
- 聚類
- k均值聚類算法
- DBSCAN聚類算法
- 公
- 準確性
- 混亂矩陣
- 分類報告
- 工作流程
- 神經網絡
- 交叉驗證
- 隨機拆分
- 分層隨機分裂
- 特征選擇
- 方差閾值
- 特征選擇
- 預處理
- 標準化
- 缺失值補全
- 特征提取(自然語言)
- 令牌計數矢量化器(文本處理)
- Tf-idf轉換
- 數據集
- ArrayDataset
- CsvDataset
- FilesDataset
- SvmDataset
- MnistDataset
- 準備使用數據集
- Iris Dataset
- Wine Dataset
- Glass Dataset
- 模型管理
- 數學
- 距離
- 矩陣
- 組
- 統計