分类器交叉验证java_使用交叉验证的KNN分类器
首先,您需要準確定義您的任務 . F.ex給出R ^(MxN)中的圖像I,我們希望將I分類為包含面部的圖像或沒有面部的圖像 .
我經常使用像素分類器,其任務類似于:對于圖像,我決定每個像素是面像素還是非面像素 .
定義任務的一個重要部分是提出可以用作訓練分類器的基礎的假設 . F.ex我們相信像素強度的分布可用于區分面部圖像和不包含面部的圖像 .
然后,您需要選擇一些定義圖像的功能 . 這可以通過多種方式完成,您應該在分析您正在使用的相同類型的圖像時搜索其他人的行為 .
像素分類中一種廣泛使用的方法是使用像素強度值并對圖像進行多尺度分析 . 多尺度分析的想法是不同的結構在稱為尺度的不同模糊水平上最明顯 . 作為例證考慮樹的圖像 . 沒有模糊,我們注意到精細的結構,如小樹枝和樹葉 . 當我們模糊圖像時,我們會注意到樹干和主要樹枝 . 這通常用作分割方法的一部分 .
當您了解任務和功能時,可以訓練分類器 . 如果您使用kNN和交叉驗證來查找最佳k,則應在訓練/測試中拆分數據集,然后在訓練/驗證集中拆分訓練集 . 然后使用簡化訓練集訓練并使用驗證集來確定哪個k是最佳的 . 在二元分類的情況下,例如面對非面,錯誤率通常用作性能的度量 .
最后,使用參數在完整數據集上訓練分類器并估計其在測試集上的性能 .
A classification example: With or without milk?
作為一個完整的例子,考慮從上面拍攝的一杯咖啡的圖像,因此它顯示了杯子的邊緣圍繞著棕色的盤 . 進一步假設所有圖像都被縮放和裁剪,因此盤的直徑是相同的,并且圖像的尺寸是相同的 . 為了簡化任務,我們將彩色圖像轉換為灰度,并將像素強度縮放到范圍[0,1] .
我們想要訓練一個分類器,這樣它可以區分咖啡加牛奶和沒有牛奶的咖啡 . 通過檢查一些咖啡圖像的直方圖,我們看到每個圖像在直方圖中有兩個明顯分開的“凸起” . 我們相信這些顛簸對應于前景(咖啡)和背景 . 現在我們假設前景的平均強度可以用來區分咖啡牛奶/咖啡 .
為了找到前景像素,我們觀察到因為前景/背景比率是相同的(按設計),我們可以找到給出每個圖像的比率的強度值 . 然后我們計算前景像素的平均強度,并將此值用作每個圖像的特征 .
如果我們有N個手動標記的圖像,我們將其分為訓練和測試集 . 然后,我們計算訓練集中每個圖像的平均前景強度,給出一組(平均前景強度,標簽)值 . 我們想要使用kNN,其中圖像被分配與k個最近圖像的多數類相同的類 . 我們將距離測量為平均前景像素強度的差的絕對值 .
我們通過交叉驗證搜索最優k . 我們使用2倍交叉驗證(aka holdout)來找到最佳k . 我們測試k = {1,3,5}并選擇在驗證集上給出最小預測誤差的k .
總結
以上是生活随笔為你收集整理的分类器交叉验证java_使用交叉验证的KNN分类器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏捷水手——单体法到微服务之旅
- 下一篇: 混合部署