NormalizingEstimator 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public sealed class NormalizingEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.NormalizingTransformer>
type NormalizingEstimator = class
interface IEstimator<NormalizingTransformer>
Public NotInheritable Class NormalizingEstimator
Implements IEstimator(Of NormalizingTransformer)
- 繼承
-
NormalizingEstimator
- 實作
備註
估算器特性
| 這個估計器需要查看資料來訓練參數嗎? | Yes |
| 輸入欄位資料型別 | Single 或 Double 是已知大小的向量。 |
| 輸出欄位資料型態 | 資料型態與輸入欄位相同 |
| 可匯出至 ONNX | Yes |
結果的 NormalizingEstimator 會根據資料的產生方式,以以下其中一種方式進行正規化:
- 最小最大值 - 一種線性重新縮放,基於每列的最小值與最大值。
- 平均變異數 - 將每列重新縮放為單位變異數,並可選擇性地將均值設為零。
- 對數平均變異數 - 根據對數尺度計算,將每列重新縮放為單位變異數,可選擇為零均值。
- 分箱 - 將每一列的資料分桶,並根據計算出的分箱進行線性重新縮放。
- 監督式分箱——將每一列的資料分封,並根據計算出的分箱進行線性重新縮放。箱數計算是基於標籤欄位的相關性。
- 穩健縮放 - 可選擇性地將資料置中,並根據資料範圍及所提供的分位數最小值與最大值進行縮放。 此方法對離群值更具穩健性。
估算器細節
正規化資料的區間取決於是否指定 fixZero。 fixZero 預設為 true。 當 fixZero 為假時,正規化區間為 $[0,1]$,正規化值的分布取決於正規化模式。 例如,最小值(Min Max)中,最小值與最大值分別映射為 0 與 1,其餘值介於兩者之間。 當 fixZero 設定時,正規化區間為 $[-1,1]$,正規化值分布依正規化模式而定,但行為不同。 使用最小最大值時,分布取決於數字與0的距離,因此距離最大的數字若為正數則映射為1,負數則映射為 -1。 距離 0 的距離會影響分布,大多數距離較近的數字會趨近於 0。 強健縮放不使用 fixZero,其值不受 $[0,1]$ 或 $[-1,1]$ 的限制。 其縮放基於資料範圍及所提供的分位數最小與最大值。
在未使用CDF選項的情況下,對輸入$x$套用平均變異數與對數平均變異數的輸出$y$方程式為:$y = (x - \text{offset}) \text{scale}$。 其中偏移量和尺度是在訓練時計算的。
使用CDF選項時,$y = 0.5 * (1 + \text{ERF}((x - \text{mean}) / (\text{標準差} * sqrt(2)))$。 其中 ERF 是用來近似假設為常態分布隨機變數 CDF 的 誤差函 數。 平均值和標準差是在訓練時計算。
要建立此估計量,請使用以下其中之一:
- [正常化極限狀態](xref:Microsoft.ML.NormalizationCatalog.NormalizeMinMax(Microsoft.ML.TransformsCatalog, System.String, System.String, System.Int64, System.Boolean))
- 標準化平均變異數
- 正規化對數平均變異數
- 標準化分頁
- 正常化監督分頁
- 標準化RobustScaling
請參考上述連結了解使用範例。
方法
| 名稱 | Description |
|---|---|
| Fit(IDataView) |
訓練並返回 NormalizingTransformer。 |
| GetOutputSchema(SchemaShape) |
回傳 SchemaShape 由變壓器產生的結構結構。 用於結構傳播與管線驗證。 |
擴充方法
| 名稱 | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
在估計鏈中附加一個「快取檢查點」。 這將確保下游估計器能針對快取資料進行訓練。 在訓練師接受多次資料通行前設置快取檢查點會很有幫助。 |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
給定一個估計器,回傳一個包裹物件,該物件會呼叫一次 Fit(IDataView) 代理。 估計器通常回傳擬合的資訊很重要,因此該 Fit(IDataView) 方法回傳一個特定型別的物件,而非一般 ITransformer的 。 然而,同時, IEstimator<TTransformer> 通常會被組成包含許多物件的管線,因此我們可能需要建立一條估計鏈,將 EstimatorChain<TLastTransformer> 我們想要取得變壓器的估計器埋藏在這條鏈的某處。 在這種情況下,我們可以透過此方法附加一個代理,當 fit 被呼叫時會被呼叫。 |