在前面我們看到了選擇模型時,需要對模型的偏差和方差進行權衡,現在假設我們選用的模型集合為m
=m = \
m=,如果我們僅僅是對每一類模型m
im_i
mi進行訓練,得到一些假設h
ih_i
hi。最後在各個h
ih_i
hi中挑選出具有最小經驗誤差的h
∗h^*
h∗作為結果,那麼顯然我們會傾向於那些比較複雜的模型m
∗m^*
m∗。交叉驗證法
交叉驗證法比較好的解決了這個問題,我們將樣本集分為str
ains_
strain
,scvs_
scv
。然後利用str
ains_
strain
在模型m
im_i
mi中訓練出假設h
ih_i
hi,最後選擇在scv
s_sc
v上經驗誤差最小的假設h
∗h^*
h∗,因此scv
s_sc
v上的經驗誤差是泛化誤差的乙個更好的估計,一般而言我們需要將樣本集劃分為70%和30%,這也帶來乙個問題,即我們總會浪費掉一部分樣本,因此就有了下面的模型選擇方法。
k重交叉驗證法
我們樣本集s
ss等分為s1,
...,
sk
s_1,... ,s_k
s1,..
.,sk
,然後對於模型m
im_i
mi,在樣本集s1∪
...∪
sj−1
∪sj+
1∪..
.s
ks_1\cup...\cup s_ \cup s_ \cup ...s_k
s1∪..
.∪sj
−1∪
sj+1
∪..
.sk
,訓練出假設hij
h_hi
j,然後計算在s
js_j
sj上的經驗誤差ϵ^s
j(hi
j)
\hat_(h_)
ϵ^sj
(hij
),最後利用各個ϵ^s
j(hi
j)
\hat_(h_)
ϵ^sj
(hij
)的平均作為模型m
im_i
mi的泛化誤差的估計。一般情況下,我們選擇k=10
k = 10
k=10
。k重交叉驗證法的乙個缺點是計算成本比較大,它需要k輪,但優點在於它在選擇模型的過程中,沒有造成樣本的浪費。
在一些樣本**方便,並且樣本量很多的情況下,我們可以直接用交叉驗證法。
對於高維資料,有時候其中僅僅只有少量的維度與我們關注的屬性值相關,我們稱這些屬性為特徵,我們需要一種方法篩選出特徵,否則過擬合將會是我們面臨的乙個潛在問題。
逐個新增特徵,並利用交叉驗證法驗證對當前的f
if_i
fi進行檢驗,最後選擇合適的特徵集合fff。
過濾式特徵選擇(filter feature selection)
在這種方法下,我們針對每乙個屬性x
ix_i
xi,計算乙個屬性特徵係數s(i
)s(i)
s(i)
,最後我們根據s(i
)s(i)
s(i)
對所有屬性x
ix_i
xi進行排序,然後選擇前面的k個屬性作為特徵。
一般而言,我們計算s(i
)s(i)
s(i)
可以有多種方法,一種可能的方法是計算其x
ix_i
xi與y
yy的相關係數。但是在實際中,更多採用的是計算x
ix_i
xi與y
yy的互資訊(mutual information),即mi(
xi,y
)=∑x
i∑yp
(xi,
y)
logp(
xi,y
)p(x
i)p(
y)
mi(x_i,y) = \sum_\sum_p(x_i,y)\log}
mi(xi
,y)=
xi∑
y∑
p(xi
,y)
logp(x
i)p
(y)p
(xi
,y)
。
機器學習 學習筆記 模型評估與選擇
了解錯誤率,精度,誤差,訓練誤差 經驗誤差 泛化誤差的概念 過擬合 過配 和欠擬合 欠配 過擬合就是過度擬合,即將樣本自身的一些特點當做了樣本的一般特性,使得泛化能力降低,注意,過擬合無法避免。欠擬合則與之相反。模型選擇時,選擇泛化誤差最小的,但是我們無法直接獲得泛化誤差,而訓練誤差因為過擬合的存在...
機器學習 特徵選擇筆記 前言
最近學習特徵選擇,在此記錄下學習過程,一是為加強理解,一是為學習交流。本人能力有限,望多多指教。特徵選擇 前言 1 2 不相關特徵對c4.5演算法影響很大,如果去除不相關特徵,c4.5效能會得到很大提高 3 4 5 樸素貝葉斯對不相關特徵不敏感,但是對冗餘特徵敏感,如果能降低特徵冗餘則會提高樸素貝葉...
模型選擇與特徵選擇
模型選擇 對備選的m個模型 a1,a2,a3,am 分別計算每個模型的誤差 可以用所有樣本訓練誤差或者k重交叉檢驗 k一般取10,k越大對資料的利用率越高 得到的誤差,總之用一種手段評判模型的好壞 然後選擇其中最好的乙個。特徵選擇 1 前向搜尋 設定初始特徵集為空,然後逐步新增特徵,如選擇加入後能使...