① sift演算法是什麼
Sift演算法是David Lowe於1999年提出的局部特徵描述子,並於2004年進行了更深入的發展和完善。Sift特徵匹配演算法可以處理兩幅圖像之間發生平移、旋轉、仿射變換情況下的匹配問題,具有很強的匹配能力。
這一演算法的靈感也十分的直觀,人眼觀測兩張圖片是否匹配時會注意到其中的典型區域(特徵點部分),如果我們能夠實現這一特徵點區域提取過程,再對所提取到的區域進行描述就可以實現特徵匹配了。
sift演算法的應用
SIFT演算法目前在軍事、工業和民用方面都得到了不同程度的應用,其應用已經滲透了很多領域,典型的應用如下:物體識別;機器人定位與導航;圖像拼接;三維建模;手勢識別;視頻跟蹤;筆記鑒定;指紋與人臉識別;犯罪現場特徵提取。
② 特徵處理有哪些方法
、常用方法
1、時間戳處理
時間戳通常需要分離成多個維度比如年、月、日、小時、分鍾、秒鍾。但在很多的應用中,大量的信息是不需要的,因此我們在呈現時間的時候,試著保證你所提供的所有數據是你的模型所需要的,並且別忘了時區,加入你的數據源來自不同的地理數據源,別忘了利用時區將數據標准化。
2、離散型變數處理
舉一個簡單的例子,由{紅,黃,藍}組成的離散型變數,最常用的方式是吧每個變數值轉換成二元屬性,即從{0,1}取一個值,也就是常說的獨熱編碼(one-hot code)。
3、分箱/分區
有時候,將連續型變數轉換成類別呈現更有意義,同時能夠使演算法減少雜訊的干擾,通過將一定范圍內的數值劃分成確定的塊。舉個例子,我們要預測具有哪些特徵的人會購買我們網店的商品,用戶的年齡是一個連續的變數,我們可以將年齡分為15以下、15-24、25-34、35-44、45及以上。而且,不是將這些類別分成2個點,你可以使用標量值,因為相近的年齡表現出相似的屬性。
只有了解變數的領域知識的基礎,確定屬性能夠劃分成簡潔的范圍時分區才有意義,即所有的數值落入一個分區時能夠呈現出共同的特徵。在實際的運用中,當你不想讓你的模型總是嘗試區分值之間是否太近時,分區能夠避免出現過擬合。例如,如果你感興趣的是將一個城市作為總體,這時你可以將所有落入該城市的維度整合成一個整體。分箱也能減小小錯誤的影響,通過將一個給定值劃入到最近的塊中。如果劃分范圍的數量和所有可能值相近,或對你來說准確率很重要的話,此時分箱就不合適了。
4、交叉特徵
交叉特徵算是特徵工程中非常重要的方法之一,它將兩個或更多的類別屬性組合成一個。當組合的特徵要比單個特徵更好時,這是一項非常有用的技術。數學上來說,是對類別特徵的所有值進行交叉相乘。
假如擁有一個特徵A,A有兩個可能值{A1,A2}。擁有一個特徵B,存在{B1,B2}等可能值。然後,A&B之間的交叉特徵如下:{(A1,B1),(A1,B2),(A2,B1),(A2,B2)},並且你可以給這些組合特徵取任何名字。但是需要明白每個組合特徵其實代表著A和B各自信息協同作用。
5、特徵選擇
為了得到更好的模型,使用某些演算法自動的選出原始特徵的子集。這個過程,你不會構建或修改你擁有的特徵,但是會通過修建特徵來達到減少雜訊和冗餘。
特徵選擇演算法可能會用到評分方法來排名和選擇特徵,比如相關性或其他確定特徵重要性的方法,更進一步的方法可能需要通過試錯,來搜素出特徵子集。
還有通過構建輔助模型的方法,逐步回歸就是模型構造過程中自動執行特徵選擇演算法的一個實例,還有像Lasso回歸和嶺回歸等正則化方法也被歸入到特徵選擇,通過加入額外的約束或者懲罰項加到已有模型(損失函數)上,以防止過擬合並提高泛化能力。
6、特徵縮放
有時候,你可能會注意到某些特徵比其他特徵擁有高得多的跨度值。舉個例子,將一個人的收入和他的年齡進行比較,更具體的例子,如某些模型(像嶺回歸)要求你必須將特徵值縮放到相同的范圍值內。通過特徵縮放可以避免某些特徵獲得大小非常懸殊的權重值。
7、特徵提取
特徵提取涉及到從原始屬性中自動生成一些新的特徵集的一系列演算法,降維演算法就屬於這一類。特徵提取是一個自動將觀測值降維到一個足夠建模的小數據集的過程。
③ 演算法具有什麼特徵
一個演算法應該具有以下五個重要的特徵:
1,有窮性(Finiteness):演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
2,確切性(Definiteness):演算法的每一步驟必須有確切的定義;
3,輸入項(Input):一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4,輸出項(Output):一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5,可行性(Effectiveness):演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
(3)特徵協調演算法擴展閱讀:
演算法要素:
一,數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:
1,算術運算:加減乘除等運算
2,邏輯運算:或、且、非等運算
3,關系運算:大於、小於、等於、不等於等運算
4,數據傳輸:輸入、輸出、賦值等運算
二,演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。