AI面試題(持續更新)
加入了個開課吧9.9元的AI面試題交流群,純當筆記記錄及分析。
1. 為什麼要對特徵歸一化?
歸一化可以消除因特徵量綱差異導致對模型收斂帶來的影響,可以加快收斂,便於使用預設的引數。如果不歸一化,會導致特徵值相差大的特徵佔主導作用,而忽略特徵值相差小的特徵。
對連續數值進行歸一化可以將特徵統一到一個大致相同的資料區間內。
常用方法有min-max scaling,z-score normalization.通常在計算歐氏距離或者使用梯度下降優化的場景下需要對特徵進行歸一化處理,例如線性迴歸、邏輯迴歸、SVM、神經網路等。
2. 什麼是組合特徵?如何處理高維組合特徵?
有時候為了提高模型的擬合能力,在特徵工程階段常會把一階離散特徵兩兩組合,構成高階組合特徵。比如推薦系統排序模型FM就使用了二階組合特徵。高維的特徵組合往往帶來龐大的可訓練引數,為了解決這一問題可以採用隱向量點積降維的方式來減少高維特徵組合後需要學習的引數。很多場景下,簡單的兩兩組合會存在過擬合問題,而且並不是所有的兩兩組合都有現實意義,因此也可以考慮基於決策樹的方式尋求特徵組合。
高維組合特徵的處理方式為矩陣分解。
3. 請比較歐式距離和曼哈頓距離
歐氏距離(又稱歐幾里得距離)是指N維空間中兩點的直線距離,公式
d
(
x
,
y
)
=
∑
i
=
1
n
(
x
i
−
y
i
)
2
d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}
d(x,y)=∑i=1n(xi−yi)2
曼哈頓距離用以標明兩個點在標準座標系上的絕對軸距總和。
以
A
(
x
1
,
y
1
)
A(x_1,y_1)
A(x1,y1)和
B
(
x
2
,
y
2
)
B(x_2,y_2)
B(x2,y2)為例
AB間歐氏距離:
(
x
1
−
x
2
)
2
+
(
y
1
−
y
2
)
2
\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}
(x1−x2)2+(y1−y2)2
AB間曼哈頓距離:
∣
x
1
−
x
2
∣
+
∣
y
1
−
y
2
∣
|x_1-x_2|+|y_1-y_2|
∣x1−x2∣+∣y1−y2∣
上圖綠色線即為歐氏距離,紅黃色線都可作為曼哈頓距離。
曼哈頓距離只需要計算加減法,在大量的計算中代價更低,消除了開放過程中取近似值而帶來的近似誤差。這兩種距離計算方法都對異常資料敏感,並且將各個維度的差異同等對待。
4. 為什麼一些場景中使用餘弦相似度而不是歐式距離?
餘弦相似度是通過計算兩個向量的的夾角餘弦值來評估他們的相似度,體現的是方向上的相對差異,而歐氏距離體現的是兩向量距離樹枝上的絕對差異。
餘弦相似度無論在幾維空間,取值範圍都為[-1,1],兩向量方向相同為1,正交為0,相反為-1,而歐氏距離取值範圍不固定,含義較模糊。
餘弦距離=1-餘弦相似度,取值範圍[0,2]
兩個向量之間的餘弦值可以通過使用歐幾里得點積公式求出:
a
⋅
b
=
∣
∣
a
∣
∣
∣
∣
b
∣
∣
c
o
s
θ
a\cdot b=||a||||b||cos\theta
a⋅b=∣∣a∣∣∣∣b∣∣cosθ
給定兩個屬性向量,A和B,其餘弦相似性由點積和向量長度給出:
s
i
m
i
l
a
r
i
t
y
=
c
o
s
(
θ
)
=
A
⋅
B
∣
∣
A
∣
∣
∣
∣
B
∣
∣
=
∑
i
=
1
n
A
i
×
B
i
∑
i
=
1
n
(
A
i
)
2
×
∑
i
=
1
n
(
B
i
)
2
similarity=cos(\theta)=\frac{A\cdot B}{||A||||B||}=\frac{\sum_{i=1}^{n}A_i\times B_i}{\sqrt{\sum_{i=1}^n(A_i)^2}\times \sqrt{\sum_{i=1}^n(B_i)^2}}
similarity=cos(θ)=∣∣A∣∣∣∣B∣∣A⋅B=∑i=1n(Ai)2×∑i=1n(Bi)2∑i=1nAi×Bi
在計算文字、句子之間的相似度時常餘弦相似度而不是歐氏距離。
5. one-hot的作用是什麼?為什麼不直接使用數字作為表示?
ont-hot編碼將類別變數轉為二值化變數,通常用來處理類別變數間不具有大小關係的特徵。
如果直接使用數字表示,預設為連續變數,將原本不具有大小關係的變數轉換為數字後會影響同一特徵在樣本中的權重,數字編碼更適合類別間具有大小關係的資料。
相關文章
- Hbase面試題(持續更新)面試題
- Spring面試題(持續更新中)Spring面試題
- 前端面試問題(持續更新)前端面試
- 前端面試問題二(持續更新)前端面試
- PHP面試題總結-持續更新中PHP面試題
- GO面試題集錦快答[持續更新]Go面試題
- 資料分析面試|SQL真題持續更新面試SQL
- 【前端面試】Vue面試題總結(持續更新中)前端Vue面試題
- 前端面試題總結——HTML(持續更新中)前端面試題HTML
- 前端面試題總結——綜合問題(持續更新中)前端面試題
- 整理有關面試普遍問題和回答技巧 (持續更新~)面試
- 前端面試的一些題目(持續更新中)前端面試
- 2019 Vue 面試題彙總(持續更新中...)Vue面試題
- 前端面試題總結——Html5(持續更新中)前端面試題HTML
- 前端面試經典題目彙總(持續更新中)前端面試
- Flutter 問題集,持續更新Flutter
- 京東前端二面高頻手寫面試題(持續更新中)前端面試題
- 【C++】C++常見面試題彙總,持續更新中…C++面試題
- leetcode題解【持續更新】LeetCode
- javaScript 習題總結(持續更新)JavaScript
- 總結Java開發面試常問的問題,持續更新中~Java面試
- JVM(持續更新。。。)JVM
- FastApi持續更新ASTAPI
- 持續輸出面試題之Nginx面試題Nginx
- 前端演算法類面試總結(持續更新...)前端演算法面試
- 前端工程師面試必備(持續更新中)前端工程師面試
- 面試心得與總結-——答案整理_4 持續更新面試
- 劍指Offer——面試小提示(持續更新中)面試
- 2020年騰訊實習生C++面試題&持續更新中(3)C++面試題
- 持續輸出面試題之RocketMQ篇面試題MQ
- Blender 雕刻 持續更新
- 【Java面試題系列】:Java基礎知識面試題,看這一篇就夠了(持續更新)Java面試題
- 作業系統(考研,面試,期末複習)- 持續更新作業系統面試
- hadoop 日常問題彙總(持續更新)Hadoop
- 【CTF入門】BUUCTF Misc刷題(持續更新)
- Java執行緒池底層原始碼分享和相關面試題(持續更新)Java執行緒原始碼面試題
- 2019最新Web前端經典面試試題及答案,持續更新Web前端面試
- 持續輸出面試題系列之ZooKeeper篇面試題