AI人工智能
1,為什么要對特征做歸一化?
2,什么是組合特征?如何處理高維組合特征?
3,請比較歐式距離與曼哈頓距離?
4,為什么一些場景中使用余弦相似度而不是歐式距離?
5,One-hot的作用是什么?為什么不直接使用數字作為表示?
6,在模型評估過程中,過擬合和欠擬合具體指什么現象?
7,降低過擬合和欠擬合的方法?
深度學習
數據預處理中的重要技術–特征歸一化
數據預處理:
深度學習中的數據預處理有哪些方式
1.數據歸一化:包括高斯歸一化、最大最小值歸一化等
2.白化:許多深度學習算法都依賴于白化來獲得更好的特征。所謂的白化,以PCA白化來說,就是對PCA降維后的數據的每一列除以其特征值的根號
為什么需要對于數據進行歸一化處理,歸一化的方式有哪些
1.為了后面處理數據方便,歸一化可以避免一些不必要的數值問題
2.為了程序運行時收斂加快
3.同一量綱。樣本數據的評價標準不一樣,需要對其量綱化,統一評價標準。這算是應用層面的需求
4.避免神經元飽和。就是當神經元的激活在接近0或者1時會飽和,在這些區域,梯度幾乎為0,這樣,在反向傳播過程中,局部梯度就會接近0,這會有效地"殺死"梯度
5.保證輸出數據中數值小的不被吞食
歸一化的方式主要有:線性歸一化、標準差歸一化、非線性歸一化
什么是特征歸一化
數據的標準化是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便于不同單位或量級的指標能夠進行比較和加權
其中最典型的就是數據的歸一化處理,即將數據統一映射到[0,1]區間上
為什么要進行特征歸一化
1.對數值類型的特征做歸一化可以將所有的特征都統一到一個大致相同的數值區間內
2.從經驗上說,歸一化是讓不同維度之間的特征在數值上有一定比較性,可以大大提高分類的準確性
學習機器學習
什么是組合特征?如何處理高維組合特征
狹義的組合特征即將類別特征兩個或者多個特征組合(數學里面的組合概念)起來,構成高階組合特征
為了提高復雜關系的擬合能力,在特征工程中經常會把一屆離散特征兩兩組合,構成高階組合特征
可以使用降維的方法處理高維組合特征:
矩陣分解、特征篩選:
特征降維其實從大的方面講有兩條路可走:
基于原有的特征進行降維
基于原有的特征進行篩選
歐式距離和曼哈頓距離的比較
歐式距離:歐幾里得度量是一個通常采用的距離定義,指在m維空間中兩個點之間的真實距離
意義:歐式距離越小,兩個向量的相似度越大;歐式距離越大,兩個向量的相似度越小
缺點:對異常數據敏感
歐式距離將向量各個維度之間的差異等同對待,(實際情況中,樣本的不同屬性重要程度往往不同)
優點:計算速度快
曼哈頓距離:歐式距離有一個局限是度量兩點之間的直線距離。但實際上,在現實世界中,我們從原點到目標點,往往直走是不能到達的。曼哈頓距離加入了一些這方面的考慮
意義:曼哈頓距離也稱為城市街區距離??梢钥闯鲈诼D距離中,考慮了更多的實際因素??傊?#xff0c;在曼哈頓距離的世界中,規則是我們只能沿著線畫出的格子行進
缺點:對異常值敏感
曼哈頓距離將向量各個維度之間的差異等同對待
優點:計算速度快
歐氏距離和曼哈頓距離的區別在于:它們對向量之間差異的計算過程中,各個維度差異的權值不同。向量各個屬性之間的差距越大,則曼哈頓距離越接近歐式距離
余弦距離
余弦相似度,就是計算兩個向量間夾角的余弦值
余弦距離就是用1減去這個獲得的余弦相似度
由上面余弦距離可知,余弦距離的取值范圍為[0,2],滿足了非負性的性質
當向量的模長是經過歸一化的,此時歐式距離與余弦距離有著單調的關系
在此場景下,如果選擇距離最小(相似度最大)的近鄰,那么使用余弦相似度和歐式距離的結果是相同的
什么時候用余弦距離,什么時候用歐式距離
總體來說,歐式距離體現在數值上的絕對差異,而余弦距離體現在方向上的相對差異
1)例如,統計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);此時二者的余弦距離很大,而歐式距離很小;我們分析兩個用戶對不同視頻的偏好,更關注相對差異,顯然應當使用余弦距離
2)而當我們分析用戶活躍度,以登陸次數和平均觀看時長作為特征時,余弦距離會認為(1,10)、(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有著極大差異的,此時我們更關注數值絕對差異,應當使用歐式距離
在日常使用中需要注意區分,余弦距離雖然不是一個嚴格意義上的距離度量公式,但是形容兩個特征向量之間的關系還是有很大用處的。比如人臉識別,推薦系統等
One-hot的作用是什么?為什么不直接使用數字作為表示?
One-hot主要用來編碼類別特征,即采用啞變量對類別進行編碼。它的作用是避免因類別用數字作為表示而給函數帶來抖動
直接使用數字會給將人工誤差而導致的假設引入到類別特征中,比如類別之間的大小關系,以及差異關系等等
One-hot編碼,又稱為一位有效編碼,主要是采用N位狀態寄存器來對N個狀態進行編碼,每個狀態都由他獨立的寄存器位,并且在任意時候只有一位有效
在實際的機器學習的應用任務中,特征有時候并不總是連續值,有可能是一些分類值,如性別可分為“ male ”和“ female ”。在機器學習任務中,對于這樣的特征,通常我們需要對其進行特征數字化,如下面的例子:
有如下三個特征屬性:
性別:[“male”,“female”]
地區:[“Europe”,“US”,“Asia”]
瀏覽器:[“Firefox”,“Chrome”,“Safari”,“Internet Explorer”]
對于某一個樣本,如[“male”,“US”,“Internet Explorer”],我們需要將這個分類值的特征數字化,最直接的方法,我們可以采用序列化的方式:[0,1,3]。但是這樣的特征處理并不能直接放入機器學習算法中。
One-Hot Encoding的處理方法
對于上述的問題,性別的屬性是二維的,同理,地區是三維的,瀏覽器則是四維的,這樣,我們可以采用One-Hot編碼的方式對上述的樣本“[“male”,“US”,“Internet Explorer”]”編碼,“male”則對應著[1,0],同理“US”對應著[0,1,0],“Internet Explorer”對應著[0,0,0,1]。則完整的特征數字化的結果為:[1,0,0,1,0,0,0,0,1]。這樣導致的一個結果就是數據會變得非常的稀疏。
使用one-hot編碼,將離散特征的取值擴展到了歐式空間,離散特征的某個取值就對應歐式空間的某個點
將離散特征映射到歐式空間,是因為,在回歸、分類、聚類等機器學習算法中,特征之間距離的計算或者相似度的計算是非常重要的,而我們常用的距離或者相似度的計算都是在歐式空間的相似度計算,計算余弦相似性,基于的就是歐式空間
在模型評估過程中,過擬合和欠擬合具體指什么現象?
過擬合是指模型對于訓練數據擬合呈過當的情況,反映到評估指標上,就是模型在訓練集上的表現好,但是在測試集和新數據上的表現較差
欠擬合是指模型在訓練和預測時都表現不好。用模型在數據上的偏差和方差指標來表示就是,欠擬合的時候,偏差和方差都比較大,而過擬合時,偏差較小但方差較大
過擬合和欠擬合是導致模型泛化能力不高的兩種常見原因,都是模型學習能力與數據復雜度之間失配的結果
降低過擬合和欠擬合的方法
欠擬合:
1.增加新特征,可以考慮加入特征組合、高次特征,來增大假設空間
2.添加多項式特征,這個在機器學習算法中用的很普遍,例如將線性模型通過添加二次項或者三次項使模型泛化能力更強
3.減少正則化參數,正則化的目的是用來防止過擬合的,但是模型出現了欠擬合,則需要減少正則化參數
4.使用非線性模型,比如核SVM 、決策樹、深度學習等模型
5.調整模型的容量(capacity),通俗地,模型的容量是指其擬合各種函數的能力
6.容量低的模型可能很難擬合訓練集;使用集成學習方法,如Bagging ,將多個弱學習器Bagging
過擬合:
1.正則化(Regularization)(L1和L2)
2.數據擴增,即增加訓練數據樣本
3.Dropout
4.Early stopping
總結
- 上一篇: 减肥期间可以喝白酒吗
- 下一篇: 单链表基础知识详解