導航:首頁 > 源碼編譯 > 最近領點法演算法

最近領點法演算法

發布時間:2022-05-29 23:15:26

❶ 機器學習中演算法的優缺點之最近鄰演算法

機器學習中有個演算法是十分重要的,那就是最近鄰演算法,這種演算法被大家稱為KNN。我們在學習機器學習知識的時候一定要學習這種演算法,其實不管是什麼演算法都是有自己的優缺點的,KNN演算法也不例外,在這篇文章中我們就詳細的給大家介紹一下KNN演算法的優缺點,大家一定要好好學起來喲。
說到KNN演算法我們有必要說一下KNN演算法的主要過程,KNN演算法的主要過程有四種,第一就是計算訓練樣本和測試樣本中每個樣本點的距離,第二個步驟就是對上面所有的距離值進行排序(升序)。第三個步驟就是選前k個最小距離的樣本。第四個步驟就是根據這k個樣本的標簽進行投票,得到最後的分類類別。
那麼大家是否知道如何選擇一個最佳的K值,這取決於數據。一般情況下,在分類時較大的K值能夠減小雜訊的影響,但會使類別之間的界限變得模糊。一般來說,一個較好的K值可通過各種啟發式技術來獲取,比如說交叉驗證。另外雜訊和非相關性特徵向量的存在會使K近鄰演算法的准確性減小。近鄰演算法具有較強的一致性結果,隨著數據趨於無限,演算法保證錯誤率不會超過貝葉斯演算法錯誤率的兩倍。對於一些好的K值,K近鄰保證錯誤率不會超過貝葉斯理論誤差率。
那麼KNN演算法的優點是什麼呢?KNN演算法的優點具體體現在六點,第一就是對數據沒有假設,准確度高,對outlier不敏感。第二就是KNN是一種在線技術,新數據可以直接加入數據集而不必進行重新訓練。第三就是KNN理論簡單,容易實現。第四就是理論成熟,思想簡單,既可以用來做分類也可以用來做回歸。第五就是可用於非線性分類。第六就是訓練時間復雜度為O(n)。由此可見,KNN演算法的優點是有很多的。
那麼KNN演算法的缺點是什麼呢?這種演算法的缺點具體體現在六點,第一就是樣本不平衡時,預測偏差比較大。第二就是KNN每一次分類都會重新進行一次全局運算。第三就是k值大小的選擇沒有理論選擇最優,往往是結合K-折交叉驗證得到最優k值選擇。第四就是樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少)效果差。第五就是需要大量內存。第六就是對於樣本容量大的數據集計算量比較大。
正是由於這些優點和缺點,KNN演算法應用領域比較廣泛,在文本分類、模式識別、聚類分析,多分類領域中處處有KNN演算法的身影。
在這篇文章中我們給大家介紹了很多關於KNN演算法的相關知識,通過對這些知識的理解相信大家已經知道該演算法的特點了吧,希望這篇文章能夠幫助大家更好的理解KNN演算法。

❷ 數據挖掘常用演算法有哪些

1、 樸素貝葉斯


樸素貝葉斯(NB)屬於生成式模型(即需要計算特徵與類的聯合概率分布),計算過程非常簡單,只是做了一堆計數。NB有一個條件獨立性假設,即在類已知的條件下,各個特徵之間的分布是獨立的。這樣樸素貝葉斯分類器的收斂速度將快於判別模型,如邏輯回歸,所以只需要較少的訓練數據即可。即使NB條件獨立假設不成立,NB分類器在實踐中仍然表現的很出色。它的主要缺點是它不能學習特徵間的相互作用,用mRMR中的R來講,就是特徵冗餘。


2、邏輯回歸(logistic regression)


邏輯回歸是一個分類方法,屬於判別式模型,有很多正則化模型的方法(L0,L1,L2),而且不必像在用樸素貝葉斯那樣擔心特徵是否相關。與決策樹與SVM相比,還會得到一個不錯的概率解釋,甚至可以輕松地利用新數據來更新模型(使用在線梯度下降演算法online gradient descent)。如果需要一個概率架構(比如,簡單地調節分類閾值,指明不確定性,或者是要獲得置信區間),或者希望以後將更多的訓練數據快速整合到模型中去,那麼可以使用它。


3、 線性回歸


線性回歸是用於回歸的,而不像Logistic回歸是用於分類,其基本思想是用梯度下降法對最小二乘法形式的誤差函數進行優化。


4、最近鄰演算法——KNN


KNN即最近鄰演算法,其主要過程為:計算訓練樣本和測試樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等);對上面所有的距離值進行排序;選前k個最小距離的樣本;根據這k個樣本的標簽進行投票,得到最後的分類類別;如何選擇一個最佳的K值,這取決於數據。


5、決策樹


決策樹中很重要的一點就是選擇一個屬性進行分枝,因此要注意一下信息增益的計算公式,並深入理解它。


6、SVM支持向量機


高准確率,為避免過擬合提供了很好的理論保證,而且就算數據在原特徵空間線性不可分,只要給個合適的核函數,它就能運行得很好。在動輒超高維的文本分類問題中特別受歡迎。可惜內存消耗大,難以解釋,運行和調參也有些煩人,而隨機森林卻剛好避開了這些缺點,比較實用。

❸ TSP問題數學論文

旅行商問題(Traveling Salesman Problem, TSP)

這個問題字面上的理解是:有一個推銷員,要到n個城市推銷商品,他要找出一個包含所有n個城市的具有最短路程的環路。

TSP的歷史很久,最早的描述是1759年歐拉研究的騎士周遊問題,即對於國際象棋棋盤中的64個方格,走訪64個方格一次且僅一次,並且最終返回到起始點。

TSP由美國RAND公司於1948年引入,該公司的聲譽以及線性規劃這一新方法的出現使得TSP成為一個知名且流行的問題。

2、中國郵遞員問題(Chinese Postman Problem CPP)

同樣的問題,在中國還有另一個描述方法:一個郵遞員從郵局出發,到所轄街道投遞郵件,最後返回郵局,如果他必須走遍所轄的每條街道至少一次,那麼他應如何選擇投遞路線,使所走的路程最短?這個描述之所以稱為中國郵遞員問題, 因為是我國學者管梅古谷教授於1962年提出的這個問題並且給出了一個解法。

3、「一筆畫」問題(Drawing by one line)

還有一個用圖論語言的描述方式:平面上有n個點,用最短的線將全部的點連起來。稱為「一筆畫」問題。

4、配送路線問題(Route of Distribution)

TSP問題在物流中的描述是對應一個物流配送公司,欲將n個客戶的訂貨沿最短路線全部送到。如何確定最短路線。

TSP問題最簡單的求解方法是枚舉法。它的解是多維的、多局部極值的、趨於無窮大的復雜解的空間,搜索空間是n個點的所有排列的集合,大小為(n-1)!。可以形象地把解空間看成是一個無窮大的丘陵地帶,各山峰或山谷的高度即是問題的極值。求解TSP,則是在此不能窮盡的丘陵地帶中攀登以達到山頂或谷底的過程。

5、多迴路運輸問題(Vehicle Routing Problem, VRP)

多迴路運輸問題在物流中的解釋是對一系列客戶的需求點設計適當的路線,使車輛有序地通過它們,在滿足一定的約束條件下,如貨物需求量、發送量、交發貨時間、車輛載重量限制、行駛里程限制、時間限制等等,達到一定的優化目標,如里程最短、費用最少、時間最短,車隊規模最少、車輛利用率高。

VRP問題和TSP問題的區別在於:客戶群體的數量大,只有一輛車或一條路徑滿足不了客戶的需求,必須是多輛交通工具以及運輸工具的行車順序兩個問題的求解。相對於TSP問題,VRP問題更復雜,求解更困難,但也更接近實際情況。

6、多個旅行商問題(Multiple TSP)

由於限制條件的增加,TSP問題可以衍生出多個旅行商問題(MTSP),就是一個出發點,m個旅行商的TSP,即所訪問的客戶沒有需求,車輛沒有裝載的限制,優化目標就是要遍歷所有的客戶,達到總里程最短。

VRP問題是MTSP問題的普遍化,當客戶的需求不僅僅是被訪問,而是有一定容積和重量的商品的裝載和卸載,涉及到不同種類和型號或不同載重量車輛的調度策略時,MTSP問題轉換為VRP問題。

7、最近鄰點法(Nearest Neighbor)

這是一種用於解決TSP問題的啟發式演算法。方法簡單,但得到的解並不十分理想,可以作為進一步優化的初始解。求解的過程一共四步:首先從零點開始,作為整個迴路的起點,然後找到離剛剛加入到迴路的上一節點最近的一個節點,並將其加入到迴路中。重復上一步,直到所有的節點都加入到迴路中,最後,將最後一個加入的節點和起點連接起來,構成了一個TSP問題的解。

8、最近插入法(Nearest Insertion)

最近插入法是另一個TSP問題的求解方法。它的求解過程也是4步:首先從一個節點出發,找到一個最近的節點,形成一個往返式子迴路;在剩下的節點中,尋找一個離子迴路中某一節點最近的節點,再在子迴路中找到一個弧,使弧的兩端節點到剛尋找到的最近節點的距離之和減去弧長的值最小,實際上就是把新找到的節點加入子迴路以後使得增加的路程最短,就把這個節點增加到子迴路中。重復以上過程,直到所有的節點都加入到子迴路中。最近插入法比最近鄰點法復雜,但可以得到相對比較滿意的解。

9、節約里程法(Saving Algorithm)

節約演算法是用來解決運輸車輛數目不確定的VRP問題的最有名的啟發式演算法。它的核心思想是依次將運輸問題中的兩個迴路合並為一個迴路,每次使合並後的總運輸距離減小得幅度最大,直到達到一輛車的裝載限制時,再進行下一輛車的優化。優化過程分為並行方式和串列方式兩種。

10、掃描演算法(Sweep Algorithm)

它也是求解車輛數目不限制的VRP問題的啟發式演算法。求解過程同樣是4步:以起始點為原點建立極坐標系,然後從最小角度的兩個客戶開始建立一個組,按逆時針方向將客戶逐個加入到組中,直到客戶的需求總量超出了車輛的載重定額。然後建立一個新的組,繼續該過程,直到將全部客戶都加入到組中

具體你這個問題我再給你看看,照著這個思路你也考慮考慮!

❹ 鄰近演算法的演算法流程

1. 准備數據,對數據進行預處理
2. 選用合適的數據結構存儲訓練數據和測試元組
3. 設定參數,如k
4.維護一個大小為k的的按距離由大到小的優先順序隊列,用於存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作為初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優先順序隊列
5. 遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優先順序隊列中的最大距離Lmax
6. 進行比較。若L>=Lmax,則舍棄該元組,遍歷下一個元組。若L < Lmax,刪除優先順序隊列中最大距離的元組,將當前訓練元組存入優先順序隊列。
7. 遍歷完畢,計算優先順序隊列中k 個元組的多數類,並將其作為測試元組的類別。
8. 測試元組集測試完畢後計算誤差率,繼續設定不同的k值重新進行訓練,最後取誤差率最小的k 值。

❺ KNN演算法,k近鄰

K最近鄰(k-Nearest Neighbour,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。

❻ 什麼是k-最近鄰演算法

K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。KNN演算法中,所選擇的鄰居都是已經正確分類的對象。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。 KNN方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
KNN演算法不僅可以用於分類,還可以用於回歸。通過找出一個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對該樣本產生的影響給予不同的權值(weight),如權值與距離成正比。該演算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本佔多數。 該演算法只計算「最近的」鄰居樣本,某一類的樣本數量很大,那麼或者這類樣本並不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量並不能影響運行結果。可以採用權值的方法(和該樣本距離小的鄰居權值大)來改進。
該方法的另一個不足之處是計算量較大,因為對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。該演算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種演算法比較容易產生誤分。

閱讀全文

與最近領點法演算法相關的資料

熱點內容
php前補零 瀏覽:731
演算法推薦廣告倫理問題 瀏覽:921
亞馬遜雲伺服器的選擇 瀏覽:810
單片機頻率發生器 瀏覽:732
備份與加密 瀏覽:623
用什麼app可以看論壇 瀏覽:52
javajdbcmysql連接 瀏覽:473
製作linux交叉編譯工具鏈 瀏覽:751
編程負數除以正數 瀏覽:512
app和aso有什麼區別 瀏覽:326
手機vmap是什麼文件夾 瀏覽:36
塔科夫鎖服如何選擇伺服器 瀏覽:290
消費者生產者問題java 瀏覽:61
程序員筱柒顧默結婚的時候 瀏覽:578
安卓截長屏怎麼弄 瀏覽:475
優信辦理解壓手續怎麼那麼慢 瀏覽:605
私有雲伺服器一體機安全嗎 瀏覽:430
python的tk界面禁用滑鼠 瀏覽:186
怎麼看伺服器mac地址 瀏覽:291
安卓如何將圖鏡像翻轉 瀏覽:325