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(二元分類)。
這個類別會在以下時候用到:
- 驗證訓練(Training)的成效。
- 使用執行結果產生的模型進行預測時,儲存演算法的分類結果。
ClassificationData 描述我們如何處理輸入(由標籤和特徵組成),並將 ClassPrediction 輸入對應到預測結果。