OneR全稱:One Rule,顧名思義,就是規則的意思。也就是說,我們最終可以只根據訓練集中的壹個特征對數據進行分類。如果只使用壹種規則,顯然這種分類的準確性不會很高,但這種簡單的算法也可以在壹些特定的數據集中獲得更好的性能。
為了理解這種算法的工作原理,讓我們舉壹個簡單的例子:根據人的身高、眼睛大小和膚色的數據將人分類為男性或女性。這些數字不屬於特征類別,只是為了稍後介紹數據。
數量、身高、眼睛大小、膚色和性別
1 180正常白人男性
2 175年長的黑人男子
3 170正常黑人男性
4 170名老年黑人婦女
5 165正常白化女性
6 160年長的白人女孩
在上表中隨機寫入壹系列數據。讓我們介紹壹下基於這些數據的OneR算法。
由於OneR算法是根據壹個規則,即某個特征進行分類的,因此如何找到這個規則就顯得更加重要。
以上面的例子為例,我們有三個特征:身高、眼睛大小和膚色。身高屬於連續值的範疇,眼睛大小屬於離散數據:正常和大,膚色也是離散數據:白色和黑色。
首先,我們用壹個簡單的方法將其轉換為離散值,並將大於(或等於)平均高度的記錄為1,小於平均高度的記錄為0,因此當前數據是這樣的。
數量、身高、眼睛大小、膚色和性別
1 1正常白人男性
2 1年長的黑人
3 1正常黑人男性
4 1年長的黑人女孩
5 0名正常的白化病女性
6 0個年長的白人婦女
然後我們需要根據這些數據找到壹個可以用於分類的特征規則。這個特征是基於身高、眼睛大小和膚色嗎?
事實上,根據我們的生活常識,我們知道在這三個特征中,身高的可靠性相對較高。但是如何通過計算找到身高的特征呢?
如何找到分類的規則(特征)。
其實簡單想想,當然使用這個功能後,我們的除法結果正確率是最高的。我們需要進行壹些簡單的計算,以確保使用該特征的分類具有最高的準確性。因為只有最高的準確率才能得到更正確的分類結果,我們的任務可以轉化為尋找壹個特征,根據這個特征進行分類時才能得到最高的準確率。
但是,應該理解的是,壹個特征可能有多個特征值,因此要計算該特征的準確性,必須包括所有特征值。也就是說,該特征的精度是根據所有特征值計算的。對於某個特征對應的特征值,當然是選擇分類最多的壹個作為這個特征值的分類結果,然後根據這個特征值的分類結果計算錯誤的個數。最後,計算該特征的精度。
下面,分別計算上述樣本集中身高、眼睛大小和膚色的準確度。
身高。
我們可以看到身高* * *的特征有兩個特征值:0和1。
如果身高特征值為1,那麽滿足特征值的數據編號為{1,2,3,4},對應的分類為{男,男,男,女}。顯然,如果身高特征值為1,那麽在這個樣本集中,男生占3/4,女生占1/4。然後我們選擇分類結果最多的壹個作為身高特征值為1的分類結果,即性別為男性。所以現在我們可以簡單的認為如果身高特征值是1,我們可以簡單的認為性別是男性。但顯然,這個結論是錯誤的。該樣本集的錯誤數為1,因為當身高特征值為1時,有1個樣本的性別為女性,這與我們的結論不壹致。
如果高度特征值為0。那麽滿足特征值的數據號為{5,6},對應的分類為{女性,女性}。這個計算結果就比較明顯了。如果身高特征值為0,女生占2/2。然後我們選擇女性作為身高特征值為0的分類結果。也就是說,如果身高的特征值為0,我們認為性別為女性。這個結論可能是錯誤的,但在這個數據集中是正確的。
計算完高度的所有特征值後,就可以計算精度了。當身高特征值為0時,我們將其分類為女性,準確率為100%。當身高特征值為1時,我們將其歸類為男性,有壹個數據是錯誤的。因此,如果按照身高劃分,準確率為:5/6=0.833。
眼睛大小。
眼睛大小* * *的特征有兩個特征值:正常和大。
如果眼睛大小正常,則滿足特征值的數據編號為{1,3,5},對應的分類結果為{男,男,女}。同樣男生占2/3,女生占1/3,所以簡單認為如果眼睛大小正常,則認為性別為男性。同樣,在這個數據集中,這個結論的錯誤數是1,因為當前的特征值分類結果之壹是女性。
如果眼睛大小較大,則滿足特征值的數據編號為{2,4,6},對應的分類結果為{女性,女性,男性}。同樣女生占2/3,男生占1/3,所以簡單的認為如果眼睛比較大,性別就認為是女性。同樣,在這個數據集中,這個結論的錯誤數為1。
在計算了關於眼睛大小的所有特征值之後,可以計算精度。當眼睛大小正常時,我們將其歸類為男性,樣本集中的壹個數據是錯誤的。同樣,在大眼睛的情況下,將其劃分為女性,並且該結論在樣本集中的壹個數據中是錯誤的。因此,如果按照眼睛大小劃分,準確率為:4/6=0.667。
膚色。
膚色特征* * *有兩個特征值:黑色和白色。
如果膚色較深,滿足特征值的數據編號為{2,3,4},對應的分類結果為{男,男,女}。男生占2/3,女生占1/3。所以如果膚色黑,就簡單認為是男孩,這個結論的錯誤數是1。
如果膚色為白色,則滿足特征值的數據編號為{1,5,6},對應的分類結果為{男,女,女}。男生占1/3,女生占2/3。因此,如果膚色是白色的,則簡單地認為是女孩,此結論的錯誤數為1。
所以膚色的準確度是:4/6=0.667。
現在獲得了每個特征的精度。劃分高度的精度為:0.833;膚色和眼睛大小的準確度為0.667。所以我們用身高作為劃分特征。
也就是說,如果有新的數據,我們將僅通過查看身高的數據來進行分類。然而,分類器的精度需要通過使用測試數據來計算。我們計算的0.833只是基於訓練樣本集的準確性,只是為了找出用於分類的規則。