Algorithm
func minDistance(word1 string, word2 string) int {
if len(word1)*len(word2) == 0 {
return len(word1) + len(word2)
}
dp := make([][]int, len(word1)+1)
for i := 0; i <= len(word1); i++ {
dp[i] = make([]int, len(word2)+1)
}
for i := 0; i <= len(word1); i++ {
dp[i][0] = i
}
for j := 0; j <= len(word2); j++ {
dp[0][j] = j
}
for i := 1; i <= len(word1); i++ {
for j := 1; j <= len(word2); j++ {
left := dp[i-1][j] + 1
down := dp[i][j-1] + 1
left_down := dp[i-1][j-1]
if word1[i-1] != word2[j-1] {
left_down += 1
}
dp[i][j] = min(left, min(down, left_down))
}
}
return dp[len(word1)][len(word2)]
}
func min(a, b int) int {
if a <= b {
return a
}
return b
}
Review
3 Pieces of Code I Can Write in Rust (but not Go)
作者講了他入門rust之后颜骤,了解到的和go的區(qū)別,偏簡(jiǎn)單語(yǔ)法層面沒(méi)有太多東西器紧。
TIP
最近在搞壓測(cè)仿真度技術(shù)調(diào)研疯暑,所謂的壓測(cè)仿真度就是被壓服務(wù)在壓測(cè)過(guò)程的表現(xiàn)和線上真實(shí)情況表現(xiàn)的相似度丸凭。如果把壓測(cè)期間的數(shù)據(jù)和線上真實(shí)情況的數(shù)據(jù)抽象成2個(gè)向量數(shù)據(jù),仿真度的計(jì)算其實(shí)就是計(jì)算這2個(gè)向量的相似度。這和NLP中的文本相似度問(wèn)題有點(diǎn)類似星虹,所以網(wǎng)上找了相關(guān)資料進(jìn)行學(xué)習(xí)從0到1盖桥,了解NLP中的文本相似度灾螃。
幾個(gè)常用的向量距離:
- 歐幾里得距離:在數(shù)學(xué)上其實(shí)就是2個(gè)向量代表的點(diǎn)之間的直線距離。
- 曼哈頓距離:從點(diǎn)A(x1, y1)到點(diǎn)B(x2, y2)的曼哈頓距離為兩個(gè)點(diǎn)上在標(biāo)準(zhǔn)坐標(biāo)系上的絕對(duì)軸距之總和揩徊。
- 切比雪夫距離:各座標(biāo)數(shù)值差的最大值腰鬼。
- 余弦距離:Cosine distance使用兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異的大小。相比于歐幾里德距離塑荒,余弦距離更加注重的是兩個(gè)向量在方向上的差異熄赡。
- 漢明距離:Hamming distance在信息論中,表示為兩個(gè)「等長(zhǎng)」字符串之間對(duì)應(yīng)位置的不同字符的個(gè)數(shù)齿税。
Share
分享一個(gè)器學(xué)習(xí)解決機(jī)維度災(zāi)難的方法: PCA的數(shù)學(xué)原理彼硫。
首先,什么是維度災(zāi)難呢?機(jī)器學(xué)習(xí)中的維度災(zāi)難這篇文章解釋的比較清楚:當(dāng)你的訓(xùn)練數(shù)據(jù)不夠多的情況下乌助,如果你強(qiáng)行增加分類器的維度的話溜在,這時(shí)候就會(huì)導(dǎo)致訓(xùn)練出來(lái)的模型過(guò)擬合而缺少泛用性,導(dǎo)致過(guò)擬合的原因就是維度災(zāi)難他托。
那么掖肋,要怎么解決維度災(zāi)難呢?前面提到了導(dǎo)致維度災(zāi)難的2個(gè)條件:訓(xùn)練數(shù)據(jù)不夠多和特征過(guò)多赏参。最直接的辦法就是增加你的訓(xùn)練數(shù)據(jù)志笼,然而現(xiàn)實(shí)情況很可能是訓(xùn)練數(shù)據(jù)很珍貴沒(méi)有那么容易增加。這時(shí)候就可以考慮第二個(gè)解決方案:降維把篓。一個(gè)著名的維度降低技術(shù)就是通過(guò)主成分分析法(PCA)來(lái)實(shí)現(xiàn)降維纫溃。
PCA的數(shù)學(xué)原理這篇文章由淺入深的講述了什么是PCA,以及為什么PCA能實(shí)現(xiàn)降維韧掩。文章末尾這段話很清晰的詮釋了PCA:
PCA本質(zhì)上是將方差最大的方向作為主要特征紊浩,并且在各個(gè)正交方向上將數(shù)據(jù)“離相關(guān)”,也就是讓它們?cè)诓煌环较蛏蠜](méi)有相關(guān)性”