ML.NET Cookbook:(12)我想看看模型的系数
生活随笔
收集整理的這篇文章主要介紹了
ML.NET Cookbook:(12)我想看看模型的系数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通常,一旦一個模型被訓練出來,我們也會對“它學到了什么”感興趣。
例如,如果線性模型為我們認為重要的特征賦予零權重,則可能表明建模存在一些問題。線性模型的權重也可用作對“特征重要性”的估計。
這是我們可以從訓練的模型中提取學習到的參數的方法:
//?第一步:將數據加載為IDataView。 //??檢索訓練數據。 var?trainData?=?mlContext.Data.LoadFromTextFile<IrisInput>(irisDataPath,//?默認分隔符是tab,但數據集使用逗號。separatorChar:?',' );//?建立學習管道。 var?pipeline?=//?將所有特征串聯到一列“Features”中。mlContext.Transforms.Concatenate("Features",?"SepalLength",?"SepalWidth",?"PetalLength",?"PetalWidth")//?請注意,標簽是文本,因此需要將其轉換為鍵。.Append(mlContext.Transforms.Conversion.MapValueToKey("Label"),?TransformerScope.TrainTest)//?在緩存檢查點階段之后的步驟中緩存內存中的數據。.AppendCacheCheckpoint(mlContext)//?利用多類SDCA模型對標簽進行預測。.Append(mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy());//?訓練模型。 var?trainedModel?=?pipeline.Fit(trainData);//?檢查模型參數。 var?modelParameters?=?trainedModel.LastTransformer.Model?as?MaximumEntropyModelParameters;//?現在我們可以使用“modelParameters”來查看權重。 //?“weights”是一個權重向量數組,每個類一個向量。 //?我們的問題有3個類,所以numclass將是3,權重將包含3個向量(每個向量有4個值)。 VBuffer<float>[]?weights?=?default; modelParameters.GetWeights(ref?weights,?out?int?numClasses);//?numClasses //?3 //?weights //?{float[4]}???????{?float[4]}?????????{?float[4]} //?2.45233274???????0.181766108?????????-3.05772042 //?4.61404276???????0.0578986146????????-4.85828352 //?-?6.934741???????-0.0424297452???????6.63682 //?-?3.64960361?????-4.072106???????????7.55050659//?同樣,我們也可以檢查3個類的偏差。 var?biases?=?modelParameters.GetBiases(); //???[0]?1.151999?float //??????[1]?8.337694?float //???[2]?-9.709775?float歡迎關注我的個人公眾號”My IO“
總結
以上是生活随笔為你收集整理的ML.NET Cookbook:(12)我想看看模型的系数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用NSubstitute来mock
- 下一篇: asp.net ajax控件工具集 Au