1.一種基于歐氏距離改進的kNN近鄰查找方法,其特征在于:假定由n(n>0)個樣本構(gòu)成樣本集合S={s0,s1,…,sn-1},同時共有t(t>0)個線程TD0、TD1、…、TDt-1進行處理,在S中查找與待分類樣本v0最相似的k個近鄰,則本方法具體可以分為3個主要步驟:
步驟1,線程初始化處理;對任一線程TDj(0≤j≤t-1),令其中為取下整符號,則TDj首先在Sj中隨機取k個樣本,構(gòu)成TDj關(guān)于待分類樣本v0的初始k-近鄰集合再計算中各樣本與v0的歐氏距離,并選擇其中距離最大值,不妨記為dmaxj,假定與它對應的樣本為smax;同時令并且令樣本集合
步驟2,單個線程求k-近鄰;對任一線程TDj(0≤j≤t-1),從中逐個選取每一樣本s;首先,計算s各個維度與v0對應維度的距離,并將其與radius進行比較:只要其中有一個維度的距離大于radius,則直接丟棄s;否則,計算s與v0的歐氏距離d;
將計算所得d與dmaxj進行比較,如果d大于dmaxj,則直接丟棄s;否則令并再在所得新的中選擇距離v0最遠的樣本(仍用smax表示),v0和樣本smax的距離仍用dmaxj表示,同時更新當中所有樣本處理完后,則得到線程TDj的k-近鄰集合計算并記錄中各樣本與v0的歐氏距離;
步驟3,多線程歸并求k-近鄰;將t個線程的k-近鄰集合進行歸并,得到該集合中共有t*k個樣本,并對應t*k個歐氏距離;通過在t*k個歐氏距離中選取k個最小值,很容易得到全局樣本集合S中關(guān)于待分類樣本v0的k個近鄰。