ML.NET 與機器學習

  • 1152
  • 0

ML.NET​

機器學習目前大部分都需要使用Python,現在可以選擇使用C#。

ML.NET目前版本在64位元作業系統上,支援於.Net Core 2.0以及.Net Standard 2.0環境。

Background

機器學習是AI(人工智慧)的一種實現方法,常見可分為5類。

  • Supervised(監督)
    • Classification(分類):可將資料分為幾類。
    • Regression(回歸):常用的統計模型。
  • Unsupervised(無監督)
    • Ranking(排名):優先順序。
    • Clustering(叢聚):將資料組織化。
    • Anomaly Detection(異常檢測):異常檢測。

情感分析

Sentiment analysis(情感分析)當中使用了Classification(分類)中的Binary Classification(二元分類)

以下參考微軟提供的教學課程

機器學習大致會經過訓練(Training)與預測(Prediction)等階段。

public class ClassificationData
{
    [Column(ordinal: "0", name: "Label")]
    public float Sentiment;

    [Column(ordinal: "1")]
    public string Text;
}

將ClassificationData中的每個屬性對應到標籤(Lable),標籤(Lable)定義我們要用於訓練的資料中每一行的類別的定義。

除了標籤(Lable),還有特徵(features),都是作為後續訓練(Training)階段時一種特別用途的資料結構。

public class ClassPrediction
{
    [ColumnName("PredictedLabel")]
    public bool Class;
}

ClassPrediction狀態為一個布林值,將輸入對應到Binary Classification(二元分類)。

這個類別會在以下時候用到:

  1. 驗證訓練(Training)的成效。
  2. 使用執行結果產生的模型進行預測時,儲存演算法的分類結果。

ClassificationData 描述我們如何處理輸入(由標籤和特徵組成),並將 ClassPrediction 輸入對應到預測結果。