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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ML.NET Cookbook:(10)如何使用模型做出一个预测?

發(fā)布時(shí)間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ML.NET Cookbook:(10)如何使用模型做出一个预测? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)槿魏蜯L.NET模型都是一個(gè)轉(zhuǎn)換器,所以您當(dāng)然可以使用model.Transform將該模型應(yīng)用于“數(shù)據(jù)視圖”并以這種方式獲得預(yù)測(cè)。

不過,更典型的情況是,沒有我們想要預(yù)測(cè)的“數(shù)據(jù)集”,而是一次只接收一個(gè)樣本。例如,我們將模型作為ASP.NET網(wǎng)站的一部分運(yùn)行,并且需要對(duì)傳入的HTTP請(qǐng)求進(jìn)行預(yù)測(cè)。

對(duì)于這種情況,ML.NET提供了一個(gè)方便的PredictionEngine組件,它基本上是通過預(yù)測(cè)管道一次運(yùn)行一個(gè)樣本。

下面是完整的例子。假設(shè)我們?yōu)橹腎ris預(yù)測(cè)數(shù)據(jù)集建立了一個(gè)模型:

//?第一步:將數(shù)據(jù)加載為IDataView。//?檢索訓(xùn)練數(shù)據(jù)。 var?trainData?=?mlContext.Data.LoadFromTextFile<IrisInput>(irisDataPath,//?默認(rèn)分隔符是tab,但數(shù)據(jù)集使用逗號(hào)。separatorChar:?',' );//?創(chuàng)建訓(xùn)練管道。 var?pipeline?=//?將所有特征串聯(lián)到一列“Features”中。mlContext.Transforms.Concatenate("Features",?"SepalLength",?"SepalWidth",?"PetalLength",?"PetalWidth")//?請(qǐng)注意,標(biāo)簽是文本,因此需要將其轉(zhuǎn)換為鍵。.Append(mlContext.Transforms.Categorical.MapValueToKey("Label"),?TransformerScope.TrainTest)//?在緩存檢查點(diǎn)階段之后的步驟中,將數(shù)據(jù)緩存在內(nèi)存中。.AppendCacheCheckpoint(mlContext)//?使用多類SDCA模型預(yù)測(cè)標(biāo)簽。.Append(mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy())//?應(yīng)用從“PredictedLabel”列到字符串值的逆轉(zhuǎn)換。.Append(mlContext.Transforms.Conversion.MapKeyToValue("Data",?"PredictedLabel"));//?訓(xùn)練模型。 var?model?=?pipeline.Fit(trainData);

現(xiàn)在,為了使用模式理解[1]進(jìn)行預(yù)測(cè),我們定義了一對(duì)類,如下所示:

private?class?IrisInput {//?不幸的是,我們?nèi)匀恍枰摂M的“Label”列。[ColumnName("Label")]public?string?IgnoredLabel?{?get;?set;?}public?float?SepalLength?{?get;?set;?}public?float?SepalWidth?{?get;?set;?}public?float?PetalLength?{?get;?set;?}public?float?PetalWidth?{?get;?set;?} }private?class?IrisPrediction {[ColumnName("Data")]public?string?PredictedClass?{?get;?set;?} }

預(yù)測(cè)代碼如下所示:

//?使用該模型進(jìn)行一次性預(yù)測(cè)。 //?使預(yù)測(cè)函數(shù)成為對(duì)象。請(qǐng)注意,平均而言,此調(diào)用所花費(fèi)的時(shí)間比一個(gè)預(yù)測(cè)長200倍左右,因此您可能希望緩存和重用預(yù)測(cè)函數(shù),而不是為每個(gè)預(yù)測(cè)創(chuàng)建一個(gè)。 var?predictionFunc?=?mlContext.Model.CreatePredictionEngine<IrisInput,?IrisPrediction>(model);//?獲得預(yù)測(cè)。?請(qǐng)記住,“預(yù)測(cè)”不是可重入的。?如果要使用多個(gè)線程進(jìn)行同時(shí)預(yù)測(cè),請(qǐng)確保每個(gè)線程都使用自己的PredictionEngine。 var?prediction?=?predictionFunc.Predict(new?IrisInput {SepalLength?=?4.1f,SepalWidth?=?0.1f,PetalLength?=?3.2f,PetalWidth?=?1.4f });

歡迎關(guān)注我的個(gè)人公眾號(hào)”My IO“參考資料

[1]

模式理解: https://github.com/dotnet/machinelearning/blob/main/docs/code/SchemaComprehension.md

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的ML.NET Cookbook:(10)如何使用模型做出一个预测?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。