機器學習可以簡單的歸納為 通過資料訓練y = f(x)
的過程,因此定義完訓練模型之後,就需要考慮如何選擇最終我們認為最優的模型。
如何選擇最優的模型,就是本篇的主要內容:
在《統計學習方法》這本書中,曾經講過模型驗證的方法有三種,分別是簡單的交叉驗證
,s折交叉驗證
,留一交叉驗證
即把全部資料按照比例分割成兩部分,分別是訓練集和測試集。在訓練集訓練模型,在測試集測試效果,最終選擇乙個代價比較小的結果。一般是0.75。
設定s為乙個數,一般是3或者10居多。如果是3,那麼前2份作為訓練集,最後乙份作為測試集。
如果s的個數正好是樣本的容量,就是留一交叉驗證。
ps:
訓練集是用於訓練模型,測試集適用於判斷此次訓練效果。
在spark mllib中,為我們提供了兩種驗證方法,分別是
在spark mllib中,超引數可以通過上面的驗證方法,作為引數傳進去:
// 定義超引數集合
val paramgrid = new paramgridbuilder()
.addgrid(hashingtf.numfeatures, array(10, 100, 1000))
.addgrid(lr.regparam, array(0.1, 0.01))
.build()
// 定義驗證器
val cv = new crossvalidator()
.setestimator(pipeline)
.setevaluator(new binaryclassificationevaluator)
.setestimatorparammaps(paramgrid)
.setnumfolds(2) // use 3+ in practice
其中hashingtf給設定了3個引數、lr給了2個引數,如果正常我們想要驗證這6個引數的組合,應該需要驗證6次。但是在spark中,基於validator可以一次性驗證出來,並自動選擇最後代價最小的那個。
ps
上面s折交叉驗證中s的引數為2,因此內部只有乙個訓練集;如果是3,那麼最終執行的訓練次數將會是(3*2)*2 = 12
次。
spark提供了三種評估函式:
詳細的**,可以參考:
posted @
2018-01-30 15:57
xingoo 閱讀(
...)
編輯收藏
機器學習 模型評估與選擇
1.擬合 接近目標的遠近程度。過擬合 學習能力過強導致過於擬合。過於學習學到認為女生必須是長頭髮。欠擬合 學習能力低下導致欠擬合。學習能力低下,擁有長髮的都是女生。2.評估方法 目標 所選模型的泛化誤差最小 一 留出法 step 1 將資料集d 互斥 的分成訓練集s和測試集t,d sut。step ...
機器學習 模型評估與選擇
1 經驗誤差和過擬合 錯誤率 分類錯誤的樣本數佔樣本總數的比例 精度 1 錯誤率 誤差分為訓練誤差 或稱經驗誤差 和泛化誤差 訓練誤差 在訓練集上的誤差 泛化誤差 在新樣本上的誤差 機器學習的目標是得到泛化誤差最小的學習器。學習器把訓練樣本學得 太好 了的時候,很可能已經把訓練樣本自身的一些特點當做...
機器學習 模型評估與選擇
第二章 模型評估與選擇 一 概覽 對於同一資料集而言,給定不同的演算法,會提取不同的模型,甚至對於同一演算法給定不同的引數,也會得到不同的模型,選擇最佳的模型的過程稱為模型選擇。模型選擇會遵循一定的標準,首先需要將資料集分成若干部分,一部分用於訓練模型,一部分用於測試模型的泛化能力,對於測試的結果給...