我們在以前談過《線性回歸損失函式為什麼要用平方形式》,除了這篇文章中提到的理由外。還有什麼依據呢?
平方形式的損失函式一般為: c=
12∑i
=1n(
yi−y
ˆi)2
這稱為sse(the sum of squares due to error),誤差平方和。
還有一種稱為mse(mean squared error),均方差。 c=
12n∑
i=1n
(yi−
yˆi)
2 這兩種形式本質上是等價的。只是mse計算得到的值比sse計算得到的值要小,因為除了乙個n。誤差平方和以及均方差的公式中有係數1/2,是為了求導後,係數被約去。
它們都是平方形式,乙個重要原因是:誤差的平方形式是正的,是正數。這樣正的誤差和負的誤差不會相互抵消。這就是為什麼不用一次方,三次方的原因。
但是,誤差的絕對值也是正的,為什麼不用絕對值呢。所有還有第二個重要原因是:平方形式對大誤差的懲罰大於小誤差。例如:(10
−5)2
=25,|
10−5|
=5 (
10−8)
2=4,
|10−8
|=2
乙個是25:4,乙個是5:2,顯然平方形式對大誤差的懲罰更大。
此外,還有第三個重要原因:平方形式對數**算也更友好。我們經常要求損失函式的導數,平方形式求導後變成一次函式;而絕對值形式對求導數**算很不友好,需要分段求導。
此外,4次方,6次方,8次方雖然也能避免誤差正負相抵消,但對大誤差的懲罰又過大了;此外,求導後也仍然是多次函式。
損失函式為什麼用平方形式
這兩種形式本質上是等價的。只是mse計算得到的值比sse計算得到的值要小,因為除了乙個n。誤差平方和以及均方差的公式中有係數1 2,是為了求導後,係數被約去。它們都是平方形式,乙個重要原因是 誤差的平方形式是正的,是正數。這樣正的誤差和負的誤差不會相互抵消。這就是為什麼不用一次方,三次方的原因。但是...
線性回歸損失函式為什麼要用平方形式
我們在前面的 線性回歸 中了解到,對於訓練資料樣本 x i,yi 我們有如下的擬合直線 y i 0 1 xi我們構建了乙個損失函式 c i 1 n yi y i 2表示每個訓練資料點 x i,yi 到擬合直線y i 0 1 xi的豎直距離的平方和,通過最小化這個損失函式來求得擬合直線的最佳引數 實際...
為什麼用指標 二
是的,a 和 b 的值倒過來了,為什麼呢?看程式 給 tmp 付給了 a的值 10 給a 付給了 b 的值 5 給 b 付給了 tmp 的值10 所以a 和 b 值倒過來了 void swap int a,int b intmain 怎樣才能用函式交換a 和 b 的值呢?用指標 看程式三 把 a,b...