# 壓縮度量是乙個數學概念,例如我們採用歐氏距離作為度量方法, 對於任意的 ||xi-xj||>||f(xi)-f(xj)|| (xi 和 xj 為樣本空間中的樣本)
#場景 如果我們的樣本點之間距離很大,資料很稀疏的情況下,這種距離很大的計算是非常消耗資源的。我們不妨將空間的樣本對映的更加緊湊點,這樣計算資源的消耗也比較少。
import numpy as np
a = np.array([1, 1])
b = np.array([1, 6])
#我們需要用乙個矩陣將向量集中起來,我們設矩陣為a ||a-b||>||aa-ab||
# 如何構建乙個矩陣a? 如果我們將a b 對映靠近 他們的均值向量 不就可以了? 也就是a 將a,b 靠近(a, b)的均值向量
# 我們首先構建乙個假的均值向量 m =0.5 * 1/2(a + b) + 0.5 * a + nose(一點點高斯噪音) 從幾何數學來看 這個點 位於 a 和 均值向量的正中間。 [a, b] = x, [m, m] = m ax = m -> a = mx^-1
x = np.array([[1, 1],
[1, 7]])
m = np.array([[1.1, 2.3],
[1.2, 2.1]])
# 有人說沒必要啊 你這還求逆矩陣這不是畫蛇添足嗎? 是的 但是我們告訴大家度量學習資料很多是有標籤的,我們在nca方法中我們就是求得a矩陣,利用標籤資訊使得相同標記得資料更加得緊湊。 在我們這裡多了乙個限制條件就是度量得結果比原來向量的度量結果要小。
#關鍵是a矩陣的構成是乙個很大的問題,這裡我只給出了很畫蛇添足的思路,但是中心思想是讓資料更加緊湊,必然度量的結果會比之前小。
dist1 = np.linalg.norm(a - b)
dist2 = np.linalg.norm(m[0] - m[1])
print(dist1)
print(dist2)
從混淆矩陣看各種度量
機器學習中各種度量很容易搞暈學習者的頭腦。但是如果把他們和混淆矩陣一起來看的話,會容易理解很多。我也是經常接觸,所以有一些自己的感悟,記錄下來。我理解上的混淆矩陣就是乙個分類器對於正反例 假設是二分類,多分類也類似 的混淆程度。我有見過兩種不同混淆矩陣,主要區別是對於真實的類別和猜測的類別的位置互換...
稀疏矩陣的壓縮矩陣
如果乙個矩陣中的大部分元素為零,稱為稀疏矩陣。對於稀疏矩陣而言,時間儲存的資料項很少,如果在程式中使用傳統的二維陣列方式來儲存,則十分浪費儲存空間,且矩陣越大,資源浪費越嚴重。為提記憶體空間利用率,可利用三項式 3 tuple 的資料結構,即把乙個非零項用 i,j,item value 來表示。其中...
矩陣壓縮章節
書上98頁的5.1演算法 2009 10 30 14 28 稀疏矩陣的轉置 一般方法時間複雜在n.tu m.tu 三元組儲存矩陣。測試資料 6 70 12 9 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 14 0 0 0 24 0 0 0 0 0 18 0 0 0 0 0 15 ...