python array按行归一化_机器学习 第40集:特征不归一化有什么危害?特征归一化公式是什么?( 含有笔记、代码、注释 )...
特征不歸一化有什么危害?特征歸一化公式是什么?
① 例如,我用一個人身高(cm)與腳碼(尺碼)大小來作為特征值,類別為男性或者女性。我們現(xiàn)在如果有5個訓練樣本,分布如下:
A [(179,42),男] B [(178,43),男] C [(165,36)女] D [(177,42),男] E [(160,35),女]
② 很容易看到第一維身高特征是第二維腳碼特征的4倍左右,那么在進行距離度量的時候,我們就會偏向于第一維特征。
注:這樣造成倆個特征并不是等價重要的,最終可能會導致距離計算錯誤,從而導致預測錯誤。
注:例如,來了一個測試樣本 F(167,43),來預測他是男性還是女性,我們采取k=3來預測。
注:下面是用歐式距離分別算出F離訓練樣本的歐式距離,選取最近的3個,多數(shù)類別就是我們最終的結(jié)果,計算如下:
注:由計算可得,最近的前三個分別是C,D,E三個樣本,那么由C,E為女性,D為男性,女性多于男性得到我們要預測的結(jié)果為女性。
注:這樣問題就來了,一個女性的腳43碼的可能性,遠遠小于男性腳43碼的可能性。
注:算法會預測 F 為女性是因為由于各個特征量綱的不同,在這里導致了身高的重要性已經(jīng)遠遠大于腳碼了,這是不客觀的。
注:我們應該讓每個特征都是同等重要的,這也是我們要歸一化的原因!
特征歸一化公式是什么?
① 特征歸一化公式如下:
Python基礎積累(numpy)
numpy創(chuàng)建矩陣
import運行結(jié)果:
[ 2 23 4]
int32
運行結(jié)果:
[[2 3 4]
[3 4 5]]
注:生成2行3列的矩陣。
a運行結(jié)果:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
注:生成3行4列的全零矩陣。
a運行結(jié)果:
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
注:創(chuàng)建全一數(shù)據(jù),同時指定數(shù)據(jù)類型,http://np.int默認為int32。
a運行結(jié)果:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
注:創(chuàng)建全空數(shù)組,其實每個值都是接近于零的數(shù)。
a運行結(jié)果:
[10 12 14 16 18 20]
注:創(chuàng)建連續(xù)數(shù)組,數(shù)據(jù)為10-20之間,步長為2。
b運行結(jié)果:
[[10 12 14]
[16 18 20]]
注:使用reshape改變上述數(shù)據(jù)的形狀。
a運行結(jié)果:
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684 3.36842105
3.84210526 4.31578947 4.78947368 5.26315789 5.73684211 6.21052632
6.68421053 7.15789474 7.63157895 8.10526316 8.57894737 9.05263158
9.52631579 10. ]
[[ 1. 1.47368421 1.94736842 2.42105263]
[ 2.89473684 3.36842105 3.84210526 4.31578947]
[ 4.78947368 5.26315789 5.73684211 6.21052632]
[ 6.68421053 7.15789474 7.63157895 8.10526316]
[ 8.57894737 9.05263158 9.52631579 10. ]]
注:linspace(1,10,20) 開始端1,結(jié)束端10,且分割成20個數(shù)據(jù),生成線性矩陣。
注:reshape使得線性矩陣改為五行四列的矩陣。
"?每天積累一點點?"
總結(jié)
以上是生活随笔為你收集整理的python array按行归一化_机器学习 第40集:特征不归一化有什么危害?特征归一化公式是什么?( 含有笔记、代码、注释 )...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpaceX 猎鹰 9 号火箭将 O3b
- 下一篇: pyqt5获取文本框里输入的值_实战Py