SvmLightLoader 類別

定義

這會嘗試以接近 SVM 光格式的格式讀取資料,目標是此載入器應該可解譯大部分的 SVM 光格式資料。

public sealed class SvmLightLoader : Microsoft.ML.IDataLoader<Microsoft.ML.Data.IMultiStreamSource>
type SvmLightLoader = class
    interface IDataLoader<IMultiStreamSource>
    interface ICanSaveModel
Public NotInheritable Class SvmLightLoader
Implements IDataLoader(Of IMultiStreamSource)
繼承
SvmLightLoader
實作

備註

載入器也可能與 SVM 光剖析行為不同,一般方式如下:

  1. 身為 IDataView ,需要向量才能具有邏輯長度,而且基於實際理由,如果此載入器的輸出具有固定長度向量類型,因為少數估算器和基本定型估算器都接受可變長度向量類型的特徵,則很有説明。 SVM-light 沒有這類概念。
  2. IDataView 用語有不同的行為 w.r.t.parse 錯誤。
  3. SVM-light 的格式有一些限制,其格式不自然,無法嘗試在此載入器的概念中限制。
  4. 此格式的一些常見「延伸模組」會因應合理之處,通常藉由指定一些選項來支援。

您可以在這裡摘要說明 SVM 光線格式。 從 '#' 開始,SVM-light 檔案可能會導致任意數目的行。 這些會捨棄。 {label}{key}:{value} {key}:{value} ...{key}:{value}[#{comment}]

如果忽略任何) ,則行不會修剪空白字元,但行內的空白字元在 # 批註字元之前 (。 SVM-light 本身使用標準 C 「isspace」 函式,而我們只採用空白字元和定位字元作為空白字元。 因此,上述這一行中的空格可以是,例如,索引標籤,甚至可能會依序顯示多個空格。 例如,與文字載入器的格式不同,沒有任何「空白」欄位具有任何狀態的概念。

特徵向量是透過一系列索引鍵/值組來指定。 SVM 光要求索引鍵為正數、增加整數,但除了三個特殊索引鍵之外:成本 (我們解譯為 Weight) ,qid (我們解譯為 GroupId) 和 sid (我們忽略這些索引鍵,但如果任何學習者實作任何類似寬限時間識別碼) ,則未來可能會將它們呈現為數據行。 'cost' 的值是 float、'qid' 是 long,而 'sid' 是必須是正數的 long。 如果多次指定這些金鑰,最後一個金鑰就會獲勝。

如果值的尾端無法解譯為數字,則 SVM-light 會忽略尾端。 例如,「5:3.14hello」 會解譯為與 「5:3.14」 相同的 。 此載入器不支援此語法。

由於我們撰寫特徵向量的方式,我們不會保留需要增加載入器中值之索引鍵的限制,但如果仍然遵循此原則,則最有效率。 如果遵循排序,則不需要排序。

此載入器有特殊選項可讀取索引鍵的原始文字,並轉換成特徵索引,並將文字索引鍵值保留為結果特徵向量的功能名稱。 這是允許字串索引鍵的意圖,這是格式的常見變體,但原始格式不允許一個明確表示。

方法

GetOutputSchema()

這會嘗試以接近 SVM 光格式的格式讀取資料,目標是此載入器應該可解譯大部分的 SVM 光格式資料。

Load(IMultiStreamSource)

這會嘗試以接近 SVM 光格式的格式讀取資料,目標是此載入器應該可解譯大部分的 SVM 光格式資料。

明確介面實作

ICanSaveModel.Save(ModelSaveContext)

這會嘗試以接近 SVM 光格式的格式讀取資料,目標是此載入器應該可解譯大部分的 SVM 光格式資料。

擴充方法

Preview<TSource>(IDataLoader<TSource>, TSource, Int32)

預覽在指定 sourceloader 的效果。

Append<TSource,TTrans>(IDataLoader<TSource>, TTrans)

藉由將轉換器附加至此資料載入器,以建立新的複合載入器。

Append<TSource,TTrans>(IDataLoader<TSource>, IEstimator<TTrans>)

藉由將估算器附加至此資料載入器,以建立新的複合載入器估算器。

適用於