日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

VS Code + ML.NET 玩转交互式机器学习

發布時間:2023/12/4 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS Code + ML.NET 玩转交互式机器学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇文章中,我們介紹了 .NET Interactive Notbook,可以進行代碼實時運行和交互式展示。

這對于ML.NET來說非常棒,可以運用到許多場景,比如數據探索、繪制數據圖表、編制教學課件等。

下面,我們就用出租車費預測(https://github.com/feiyun0112/machinelearning-samples.zh-cn/tree/master/samples/csharp/getting-started/Regression_TaxiFarePrediction)來進行演示。

1.創建Notebook

首先,VS Code需要安裝“.NET Interactive Notebooks”擴展。

新建文件,編程語言選擇“.NET Interactive”,保存文件名后綴為“.ipynb”。

添加Markdown標記,說明一下這個機器學習任務要解決的問題場景。

完成編輯后,可以自動顯示Markdown標記結果:

2.安裝Nuget包

引用后面需要使用的NuGet包,這里,我們將使用ML.NET進行機器學習和XPlot繪制圖表。

運行代碼,下載和安裝NuGet包。

可以看到,安裝時間還是比較長的,所以可以放在單獨的代碼塊提前運行。

3.定義DataStructures

定義加載數據以及訓練或預測時,需要使用輸入類和預測類,代碼如下:

?public?class?TaxiTrip {[LoadColumn(0)]public?string?VendorId;[LoadColumn(1)]public?string?RateCode;[LoadColumn(2)]public?float?PassengerCount;[LoadColumn(3)]public?float?TripTime;[LoadColumn(4)]public?float?TripDistance;[LoadColumn(5)]public?string?PaymentType;[LoadColumn(6)]public?float?FareAmount; }

4.加載數據

加載訓練和測試數據集,文件放在Notebook同一目錄下:

MLContext?mlContext?=?new?MLContext(seed:?0);string?TrainDataPath?=?"./taxi-fare-train.csv"; string?TestDataPath?=?"./taxi-fare-test.csv"; IDataView?baseTrainingDataView?=?mlContext.Data.LoadFromTextFile<TaxiTrip>(TrainDataPath,?hasHeader:?true,?separatorChar:?','); IDataView?testDataView?=?mlContext.Data.LoadFromTextFile<TaxiTrip>(TestDataPath,?hasHeader:?true,?separatorChar:?',');IDataView?trainingDataView?=?mlContext.Data.FilterRowsByColumn(baseTrainingDataView,?nameof(TaxiTrip.FareAmount),?lowerBound:?1,?upperBound:?150); display(h4("展示訓練數據:")); var?someRows?=?mlContext.Data.CreateEnumerable<TaxiTrip>(trainingDataView,?reuseRowObject:?false).Take(4).ToArray(); display(someRows);

我們篩選了出租車票金額在1-150之間的數據作為訓練數據,并用內置函數display展示4行訓練數據內容:?

5.圖形化展示數據

圖形方式能讓我們更好地理解數據,選取100條訓練數據,看看費用的分布情況:

var?faresHistogram?=?Chart.Plot(new?Histogram()?{?x?=?trainingDataView.GetColumn<float>("FareAmount").Take(100).ToArray(),?autobinx?=?false,?nbinsx?=?20?}); var?layout?=?new?Layout.Layout()?{?title?=?"出租車費分布"?}; faresHistogram.WithLayout(layout); faresHistogram.WithXTitle("費用范圍"); faresHistogram.WithYTitle("出行數");display(faresHistogram)

可以看到費用大多數在5-10之間,?

6.訓練模型

現在,讓我們真正開始執行機器學習。我們將首先處理數據轉換,然后添加訓練器/算法,最后訓練模型。

在執行窗口底部可以看到,訓練速度還是比較快的,在我的機器上只需要1.7秒。

7.評估模型

我們需要這一步來總結我們的模型對新數據的準確性。為此,上一步中的模型針對另一個未在訓練中使用的數據集運行(taxi-fare-test.csv)。此數據集也包含已知的費用。Regression.Evaluate()計算已知費用和模型預測的費用之間差異的各種指標。

IDataView?predictions?=?trainedModel.Transform(testDataView); var?metrics?=?mlContext.Regression.Evaluate(predictions,?labelColumnName:?"Label",?scoreColumnName:?"Score");display(metrics)

6.繪制對比圖

最后,我們繪制預測與實際值的對比圖。如果回歸模型工作得很好,那么這些點大部分應該是圍繞著一條直線的,這條直線就是回歸線。

回歸線越接近“完美”(預測值等于測試數據集中的實際值),模型的質量就越好。

結論

后面的保存和使用模型,我們就不再演示了,請大家自行探索。

通過上面的示例,可以看到非常棒的交互體驗。歡迎大家繼續挖掘.NET Interactive的潛力,玩轉交互式機器學習!!!

歡迎關注我的個人公眾號”My IO“

總結

以上是生活随笔為你收集整理的VS Code + ML.NET 玩转交互式机器学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。