ML.NET Cookbook:(5)如何查看中间过程数据?
生活随笔
收集整理的這篇文章主要介紹了
ML.NET Cookbook:(5)如何查看中间过程数据?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通常,當我們構建實驗時,我們希望確保“到某一時刻”的數據處理產生我們想要的結果。對于ML.NET來說,這不是很容易做到的:因為所有的ML.NET操作都是延遲執行的,所以我們構造的對象只是數據的“承諾”。
我們需要創建游標并掃描數據以獲得實際值。一種方法是使用模式理解[1]并將數據映射到用戶定義的IEnumerable對象中。
另一種允許您檢查中間數據的機制是GetColumn<T>擴展方法。它允許您以IEnumerable的形式查看一列數據的內容。
以下是所有這些操作:
示例文件[2]:
Label?Workclass?education?marital-status 0?Private?11th?Never-married 0?Private?HS-grad?Married-civ-spouse 1?Local-gov?Assoc-acdm?Married-civ-spouse 1?Private?Some-college?Married-civ-spouse //?將數據加載到數據視圖中。 var?data?=?mlContext.Data.LoadFromTextFile<InspectedRow>(dataPath,//?文件的第一行是標題,而不是數據行。hasHeader:?true );//?開始創建我們的處理管道。現在,讓我們把所有的文本列連接在一起。 var?pipeline?=?mlContext.Transforms.Concatenate("AllFeatures",?"Education",?"MaritalStatus");//?轉換數據。 var?transformedData?=?pipeline.Fit(data).Transform(data);//?“transformedData”是數據的“承諾”。讓我們實際加載它。 var?someRows?=?mlContext//?轉換為用戶定義類型的可枚舉項。.CreateEnumerable<InspectedRowWithAllFeatures>(transformedData,?reuseRowObject:?false)//?取幾個值作為數組。.Take(4).ToArray();//?提取“AllFeatures”列。這將取出整個數據集:確保只取幾行,以防數據集太大。與靜態API類似,只是您必須指定列名和類型。 var?featureColumns?=?transformedData.GetColumn<string[]>(transformedData.Schema["AllFeatures"])參考資料
[1]
模式理解: https://github.com/dotnet/machinelearning/blob/main/docs/code/SchemaComprehension.md
[2]示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/adult.tiny.with-schema.txt
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的ML.NET Cookbook:(5)如何查看中间过程数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次 .NET 某电商交易平台Web站
- 下一篇: 关于.NET微服务最热门的问题解答