ml.net是微軟機器學習的東西,若是你的需求是須要一個固定的模型來進行操做的話那就按着官網的教程來就能夠,可是大部分的模型可能不知足現有的需求,那麼咱們須要對模型進行從新訓練。
從新訓練模型有限制條件,你從新訓練模型的數據分類必須是原有模型已有的分類,若是想增長分類的話只能從新訓練一個新的模型來進行操做。
模型從新訓練的話在第一次模型生成時候須要保存另一個模型文件,如圖:
modle的生成是經過定義的ogdEstimator算法進行生成的,而ogdEstimator裏的算法須要和上面你生成模型的管道的算法一致。算法所須要的參數labelColumnName和featureColumnName也須要一一對應。
第一次建模型階段準備工做已完成,須要保存的兩個zip儘可能保存到項目中去。
後續訓練已有的模型開始的話是這樣的:
首先加載你所保存的兩個模型文件,originalModelParameters所轉換的參數類型須要跟你模型的算法參數類型匹配,否則會提示沒法轉換成功。
而後加載你導入的新數據,轉爲IDataview。
這部分是主要是從新訓練模型的算法,LbfgsMaximumEntropy裏面的參數要相對應,這個就不用說了,固然你的算法要是其餘的也差不太多。
Fit所傳入的兩個變量,第一個是你的新數據,第二個是你的老數據,新的訓練模型將以老數據爲起點進行訓練。
所生成的retrainedModel模型數據直接保存到modelZip就能夠。算法
接下來在進行使用這個模型的時候須要進行一些改變。
若是你不須要從新訓練模型的話,進行預測是這樣的:
直接拿第一次生成的模型進行預測。而後返回給你預測的結果。
可是當咱們從新訓練過模型的時候須要對預測方法進行一些改變:
須要加載初始的模型和訓練後的模型。
從新訓練模型的正常流程大概就是這樣的了。正常生成模型以及進行預測的方法官方的demo裏就能夠找到。
注:保存模型以後的Weights會獲取不到,提示非公開成員。而後我這邊須要進行這樣一個操做:
機器學習
先定義而後經過GetWeights獲取Weights的數據。學習