共用方式為


ML.NET 中的機器學習工作

機器學習 工作 是一種以兩者為基礎的預測或推斷類型:

  • 問題或疑問
  • 可用的數據

例如,分類任務會將數據指派給類別,而分群任務則會根據相似度將數據分組。

機器學習工作依賴數據中的模式,而不是明確進行程序設計。

本文說明 ML.NET 和一些常見使用案例中可用的不同機器學習工作。

一旦您決定哪一項工作適用於您的案例,則必須選擇最佳演算法來定型模型。 可用的演算法會列在每個工作的 區段中。

分類工作

二元分類

二元分類是一項 受監督的機器學習 工作,用來預測 數據實例所屬的兩個 類別(類別)中的哪一個。 分類演算法的輸入是一組加上標籤的範例,其中每個標籤都是 0 或 1 的整數。 二元分類演算法的輸出是分類器,可用來預測新未標記實例的類別。 二元分類案例的範例包括:

  • 瞭解 Twitter 評論的情緒, 為正面或負面。
  • 診斷患者是否有特定疾病。
  • 決定將電子郵件標示為垃圾郵件。
  • 判斷相片是否包含特定項目,例如狗或水果。

如需詳細資訊,請參閱維琪百科 二元分類一文。

二元分類訓練器

您可以使用下列演算法來定型二元分類模型:

二元分類輸入和輸出

為了取得二元分類的最佳結果,訓練數據應保持平衡(也就是正例和負例訓練數據的數量相等)。 在訓練之前,應該先處理缺失值。

輸入標籤欄位資料必須是 Boolean。 輸入特徵資料列資料必須是固定大小的向量,Single

這些訓練器會輸出下列欄:

輸出數據行名稱 欄位類型 描述
Score Single 模型計算的原始分數。
PredictedLabel Boolean 根據分數的符號來預測的標籤。 負數分數會對應至 false,正分數會對應至 true

多類別分類

多重類別分類是一項 受監督的機器學習 工作,用來將數據實例分類為三個以上的 三個或多個 類別之一(類別)。 分類演算法的輸入是一組加上標籤的範例。 每個標籤通常作為文字開始。 然後,它會透過 TermTransform 執行,將它轉換成 Key(numeric) 類型。 分類演算法的輸出是分類器,可用來預測新未標記實例的類別。 多元分類案例的範例包括:

  • 將航班分類為「早期」、「準時」或「延遲」。
  • 將電影評論理解為「正面」、「中性」或「負面」。
  • 例如,將酒店評論分類為「位置」、「價格」或「清潔」。

如需詳細資訊,請參閱維琪百科 多類別分類 一文。

注意

One-vs.-rest 升級任何 二元分類學習模組,以處理多類別數據集。

多類別分類訓練器

您可以使用下列定型演算法來定型多類別分類模型:

多類別分類輸入和輸出

輸入標籤的欄位資料必須是 類型。 特徵列必須是一個 Single的固定大小向量。

此定型器會輸出下列內容:

輸出名稱 類型 描述
Score Single 向量 所有班級的分數。 較高的值表示較高的機率會落入相關聯的類別。 如果 i-th 元素具有最大值,則預測的標籤索引會 i。 請注意,i 是以零起始的索引。
PredictedLabel 預測標籤的索引。 如果其值為 i,則其實際標籤為鍵值輸入的標籤型別中的第 i個類別。

文字分類

文字分類是多類別分類的子類別,特別處理原始文字。 文字會造成有趣的挑戰,因為您必須考慮文字發生的內容和語意。 因此,編碼意義和內容可能很困難。

深度學習 模型已成為解決自然語言問題有前途的技術。 更具體來說,一種稱為 轉換器的類神經網路 已成為解決文字分類、翻譯、摘要和問答等自然語言問題的主要方式。 自然語言工作的一些熱門轉換器架構包括:

  • 來自轉換器的雙向編碼器表示法 (BERT)
  • 強化優化的 BERT 預訓練方法 (RoBERTa)
  • 再生預先定型轉換器 (GPT)

ML.NET 文字分類 API 由 TorchSharp提供。 TorchSharp 是一個 .NET 連結庫,可讓您存取支援 PyTorch 的連結庫。 TorchSharp 包含 .NET 中從頭開始定型類神經網路的建置組塊。 ML.NET 將 TorchSharp 的某些複雜度抽象化至案例層級。 它會使用 NAS-BERT 模型的預訓練版本,並使用您的數據進行微調。

如需文字分類範例,請參閱 開始使用文字分類 API

影像分類

影像分類是一項 受監督的機器學習 工作,用來預測影像的類別(類別)。 輸入是一組加上標籤的範例。 每個標籤通常作為文字開始。 然後,它會透過 TermTransform 執行,將它轉換成 Key(numeric) 類型。 影像分類演算法的輸出是分類器,可用來預測新影像的類別。 影像分類工作是多類別分類的類型。 影像分類案例的範例包括:

  • 將狗的品種確定為「西伯利亞赫斯基」、「黃金獵犬」、「貴賓狗」等等。
  • 判斷製造產品是否有瑕疵。
  • 判斷哪種類型的花卉為「玫瑰」、」向日葵」等。

影像分類訓練師

您可以使用下列定型演算法來定型影像分類模型:

影像分類輸入和輸出

輸入標籤的欄位資料必須是 類型。 特徵列必須是 Byte的可變大小向量。

此訓練器會輸出下列欄位:

輸出名稱 類型 描述
Score Single 所有班級的分數。 較高的值表示較高的機率會落入相關聯的類別。 如果 i-th 元素具有最大值,則預測的標籤索引會 i。 (i 是以零起始的索引。)
PredictedLabel 金鑰 類型 預測標籤的索引。 如果其值為 i,則其實際標籤為鍵值輸入的標籤型別中的第 i個類別。

回歸

回歸是 受監督的機器學習 任務,用來從一組相關特徵中預測標籤的值。 標籤可以是任何實數值,並不像分類任務那樣來自一組有限的值。 回歸演算法通過對標籤與其相關特徵的依賴關係進行建模,以判斷在特徵值變動時,標籤將如何變化。 回歸演算法的輸入是一組具有已知值標籤的範例。 回歸演算法的輸出是一個函式,可用來預測任何新輸入特徵集的標籤值。 回歸分析案例的範例包括:

  • 根據房屋屬性預測房價,例如臥室數目、位置或大小。
  • 根據歷史數據和目前的市場趨勢預測未來的股價。
  • 根據廣告預算預測產品的銷售額。
  • 在出版物中尋找相關文章(句子相似性)。

回歸定型器

您可以使用下列演算法來定型回歸模型:

回歸輸入和輸出

輸入標籤欄位資料必須是 Single

在這項任務中,訓練模型產生了以下結果:

輸出名稱 類型 描述
Score Single 模型預測的原始分數

聚類

叢集是一項 非監督式機器學習 工作,用來將數據實例分組為包含類似特性的叢集。 群集分析也可以用來識別數據集中那些您無法僅透過瀏覽或簡單觀察而推導出的關聯性。 叢集演算法的輸入和輸出取決於選擇的方法。 您可以採用分佈、重心、連通性或密度型方法。 ML.NET 目前支援透過 K-Means 群集的質心型方法。 叢集案例的範例包括:

  • 根據選擇酒店的習慣及特點,瞭解酒店客人的群體。
  • 識別客戶區隔和人口統計,以協助建立有針對性的廣告活動。
  • 根據製造計量分類庫存。

叢集訓練器

您可以使用下列演算法來定型叢集模型:

叢集輸入和輸出

輸入特徵資料必須 Single。 不需要標籤。

此定型器會輸出下列內容:

輸出名稱 類型 描述
Score Single 向量 指定數據點到所有叢集心的距離。
PredictedLabel 金鑰 類型 模型預測的最接近叢集索引。

異常偵測

異常偵測工作會使用主體元件分析 (PCA) 建立異常偵測模型。 基於 PCA 的異常偵測有助於在一些場景中建立模型,例如易於從某一類別(如有效交易)獲取訓練數據,但難以獲得足夠異常樣本的情況下。

PCA 是一種在機器學習中被確立的技術,經常用於探索性數據分析,因為它能揭示數據內部結構,並解釋數據中的變異。 PCA 的運作方式是分析包含多個變數的數據。 它會尋找變數之間的相互關聯,並判斷最能擷取結果差異的值組合。 這些合併的功能值可用來建立稱為主體元件更精簡的功能空間。

異常偵測包含機器學習中的許多重要工作:

  • 識別可能詐騙的交易。
  • 表示網路入侵已發生的學習模式。
  • 尋找異常的病患叢集。
  • 檢查輸入到系統中的值。

由於異常依定義是罕見的事件,因此很難收集要用於模型化的代表性數據範例。 此類別中包含的演算法特別設計用來解決使用不平衡數據集來建置和訓練模型的核心挑戰。

異常偵測訓練器

您可以使用下列演算法來定型異常偵測模型:

異常偵測輸入和輸出

輸入特徵必須是固定大小的向量 Single

此定型器會輸出下列內容:

輸出名稱 類型 描述
Score Single 由異常偵測模型計算的非負、無上限分數。
PredictedLabel Boolean 如果輸入為異常,則 true 如果不是,則為 false

排名

排名工作會從一組已標記的範例建構排名器。 這個範例集是由可使用指定準則進行評分的實例群組所組成。 每個實例的排名標籤都是 {0、1、2、3、4}。 排序器被訓練來對新實例群組進行排名,其中每個實例具有未知分數。 ML.NET 排名學習者是以機器學習 為基礎的 排名。

排名訓練演算法

您可以使用下列演算法來定型排名模型:

排名輸入和輸出

輸入標籤資料類型必須是 類型或 Single。 標籤的數值決定相關程度,其中較高的數值表示較高的相關性。 如果標籤是 類型的鍵,那麼鍵的索引是相關性值,其中最小的索引表示最不相關。 如果標籤是 Single,則較大的值表示相關性較高。

特徵數據必須是固定大小的 Single 向量,輸入行群組列必須是 鍵, 類型。

此定型器會輸出下列內容:

輸出名稱 類型 描述
Score Single 模型計算出的無界分數,用於指出預測。

建議

建議工作可讓您產生建議的產品或服務清單。 ML.NET 使用 矩陣分解協作過濾 演算法,當你的目錄中有歷史產品評分數據時進行推薦。 例如,您有使用者的歷史電影評等數據,並想要推薦他們下一步可能觀看的其他電影。

建議訓練演算法

您可以使用下列演算法來定型建議模型:

預測

預測工作會使用過去的時間序列數據來預測未來行為。 適用於預測的案例包括天氣預報、季節性銷售預測,以及預測性維護。

預測訓練人員

您可以使用下列演算法來定型預測模型:

ForecastBySsa

物件偵測

對象偵測是一項 受監督的機器學習 任務,不僅用來預測影像的類別,還提供該類別在影像中的邊界框。 物件偵測可以偵測影像內的多個物件,而不是將影像中的單一對象分類。 物件偵測的範例包括:

  • 偵測道路影像上的汽車、標誌或人員。
  • 偵測產品影像上的瑕疵。
  • 偵測 X 光影像中值得關注的區域。

物件偵測模型的訓練目前僅能透過 Azure Machine Learning 中的 模型生成器 進行。