MutualInformationFeatureSelectingEstimator 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
根據標籤欄位的互信息排序,選擇所有指定欄位的前 k 個欄位(你可以透過觀察指定欄位的值來了解標籤)。
public sealed class MutualInformationFeatureSelectingEstimator : Microsoft.ML.IEstimator<Microsoft.ML.ITransformer>
type MutualInformationFeatureSelectingEstimator = class
interface IEstimator<ITransformer>
Public NotInheritable Class MutualInformationFeatureSelectingEstimator
Implements IEstimator(Of ITransformer)
- 繼承
-
MutualInformationFeatureSelectingEstimator
- 實作
備註
估算器特性
| 這個估計器需要查看資料來訓練參數嗎? | Yes |
| 輸入欄位資料型別 | 數字、 文字 或 金鑰 資料類型的向量或標量 |
| 輸出欄位資料型態 | 與輸入欄位相同 |
| 可匯出至 ONNX | Yes |
形式上,互信息可寫成:
$\text{MI}(X,Y) = E_{x,y}[\log(P(x,y)) - \log(P(x)) - \log(P(y))]$ 其中 $x$ 和 $y$ 是隨機變數 $X$ 和 $Y$ 的觀察值。
其中期望值 E 是取於 X 與 Y 的聯合分布上的。此處 P(x, y) 是 X 與 Y 的聯合機率密度函數,P(x) 與 P(y) 分別為 X 與 Y 的邊際機率密度函數。 一般而言,依變數(或標籤)與自變數(或特徵)之間的相互信息越高,表示該標籤對該特徵的相互依賴性越高。 它保留了與標籤間最大互信息的輸出功能頂尖位置。
例如,對於以下的特徵與標籤欄位,若我們指定與標籤欄位相關度較高的前兩個槽位(向量元素),應用此估計器的輸出將只保留第一和第三欄位,因為它們的值與標籤欄的值相關性較高。
| 標籤 | Features |
|---|---|
| 沒錯 | 4,6,0 |
| 否 | 0,7,5 |
| 沒錯 | 4,7,0 |
| 否 | 0,7,0 |
這是上述資料集在擬合估計器並用所得變換器轉換後的樣子:
| 標籤 | Features |
|---|---|
| 沒錯 | 4,0 |
| 否 | 0,5 |
| 沒錯 | 4,0 |
| 否 | 0,0 |
請參考「參見」區塊,裡面有使用範例的連結。
方法
| 名稱 | Description |
|---|---|
| Fit(IDataView) |
訓練並返回 ITransformer。 |
| 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 被呼叫時會被呼叫。 |