主元分析也就是pca,主要用於資料降維。
pca(主成分分析),旨在找到資料中的主成分,並利用這些主成分表徵原始資料從而達到降維的目的。在訊號處理領域,我們認為訊號具有較大方差,而雜訊具有較小方差。因此我們不難引出pca的目標即最大化投影方差,也就是讓資料在主軸上投影的方差最大(在我們假設中方差最大的有用訊號最大化減少了雜訊的影響)。
pca 是比較常見的線性降維方法,通過線性投影將高維資料對映到低維資料中,所期望的是 在投影的維度上,新特徵自身的方差盡量大,方差越大特徵越有效,盡量使產生的新特徵間的相關 性越小。
pca 演算法的具體操作為對所有的樣本進行中心化操作,計算樣本的協方差矩陣,然後對協方差矩陣做特徵值分解,取最大的n個特徵值對應的特徵向量構造投影矩陣
牛頓法的收斂速度快,迭代次數少,但是hessian矩陣很稠密時,每次迭代的計算量很大,隨著資料規模增大,hesseian矩陣也會變大,需要更多的儲存空間以及計算量。擬牛頓法就是在牛頓法的基礎上引入hessian矩陣的近似矩陣,避免了每次都計算hessian矩陣的逆,在擬牛頓法中,構造乙個近似海森矩陣(或其逆矩陣)的正定對稱陣來代替hessian矩陣(或其逆矩),雖然不能像牛頓法那樣保證最優化的方向,但其逆矩陣始終是正定的,一次演算法始終朝最優化的方向搜尋
編輯距離的作用主要是用來比較兩個字串的相似度的
編輯距離,又稱 levenshtein 距離(萊文斯坦距離也叫做 edit distance),是指兩個字串 之間,由乙個轉成另乙個所需的最少編輯操作次數,如果它們的距離越大,說明它們越是不同。 許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。
在概念中,我們可以看出一些重點那就是,編輯操作只有三種。插入,刪除,替換這三種操 作,我們有兩個字串,將其中乙個字串經過上面的這三種操作之後,得到兩個完全相同的字 符串付出的代價是什麼就是我們要討論和計算的。
例如:我們有兩個字串:kitten 和 sitting:
現在我們要將 kitten 轉換成 sitting
我們可以做如下的一些操作;
kitten–>sitten 將 k 替換成 s sitten–> sittin 將 e 替換成 i
sittin–> sitting 新增 g
在這裡我們設定每經過一次編輯,也就是變化(插入,刪除,替換)我們花費的代價都是 1。
例如:如果 str1=」ivan」,str2=」ivan」,那麼經過計算後等於 0。沒有經過轉換。相似度 =1-0/math.max(str1.length,str2.length)=1
如果 str1=」ivan1」,str2=」ivan2」,那麼經過計算後等於 1。str1 的」1」轉換」2」, 轉換了乙個字元,所以距離是 1,相似度=1-1/math.max(str1.length,str2.length)=0.8
演算法過程
1.str1 或 str2 的長度為 0 返回另乙個字串的長度。 if(str1.length0) return str2.length; if(str2.length0) return str1.length;
2.初始化(n+1)(m+1)的矩陣 d,並讓第一行和列的值從 0 開始增長。掃瞄兩字串(nm 級的),如果:str1[i]==str2[j],用temp記錄它,為0。否則temp記為1。然後在矩陣d[i,j] 賦於 d[i-1,j]+1 、d[i,j-1]+1、d[i-1,j-1]+temp 三者的最小值。
3.掃瞄完後,返回矩陣的最後乙個值 d[n][m]即是它們的距離。 計算相似度公式:1-它們的距離/兩個字串長度的最大值。 我們用字串「ivan1」和「ivan2」舉例來看看矩陣中值的狀況: 1、第一行和第一列的值從 0 開始增長
首先我們先建立乙個矩陣,或者說是我們的二維數列,假設有兩個字串,我們的字串的 長度分別是 m 和 n,那麼,我們矩陣的維度就應該是(m+1)*(n+1).
注意,我們先給數列的第一行第一列賦值,從 0 開始遞增賦值。我們就得到了圖一的這個樣 子
之後我們計算第一列,第二列,依次類推,算完整個矩陣。
我們的計算規則就是:
d[i,j]=min(d[i-1,j]+1 、d[i,j-1]+1、d[i-1,j-1]+temp) 這三個當中的最小值。 其中:str1[i] == str2[j],用 temp 記錄它,為 0。否則 temp 記為 1
我們用 d[i-1,j]+1 表示增加操作
d[i,j-1]+1 表示我們的刪除操作
d[i-1,j-1]+temp 表示我們的替換操作
2、舉證元素的產生 matrix[i - 1, j] + 1 ; matrix[i, j - 1] + 1 ; matrix[i - 1, j - 1] + t 三者當中的最小值
3.依次類推直到矩陣全部生成
這個就得到了我們的整個完整的矩陣。
線性代數基礎知識
1.1 二階行列式 1.2 三階行列式 1.3 排列的逆序數 1.4 n階行列式 2.行列式的性質 行列式與它的轉置行列式相等。性質2 互換行列式的兩行 列 行列式變號。性質3 行列式的某一行 列 中所有的元素都乘以同乙個倍數k,等於用數k乘以此行列式。性質4 行列式中如果有兩行 列 元素成比例,則...
線性代數基礎知識note
矩陣乘法對應了乙個變換,是把任意乙個向量變成另乙個方向或長度都大多不同的新向量。在這個變換的過程中,原向量主要發生旋轉 伸縮的變化。如果矩陣對某乙個向量或某些向量只發生伸縮變換,不對這些向量產生旋轉的效果,那麼這些向量就稱為這個矩陣的特徵向量,伸縮的比例就是特徵值。實際上,上述的一段話既講了矩陣變換...
機器學習中的線性代數知識(上)
as all we know,線性代數對於機器學習的重要性不言而喻。但縱觀國內的教材和課程,大部分線性代數的講解,一上來就堆滿了各種定義和公式,從而導致我們知其然而不知其所以然,不利於我們深入理解機器學習的演算法。因此,希望本篇博文能幫大家從另乙個角度理解線性代數。但是注意,閱讀本篇博文,最好已經有...