AI產(chǎn)品經(jīng)理必懂算法:k-近鄰(KNN)算法
作為想在AI領(lǐng)域長期發(fā)展的PM同學來說,對算法有一個初步、通識的了解是非常有必要的。今天我們就從一個最為簡單、易懂的“k-近鄰(KNN)算法”聊起,KNN屬于監(jiān)督學習算法,即可以用于分類,也可以用于回歸,后續(xù)還會逐步為大家介紹一些常用的其他算法。
作為想在AI領(lǐng)域長期發(fā)展的PM同學來說,對算法有一個初步、通識的了解是非常有必要的。
我們之所以要了解算法,不僅僅有利于和算法同學的溝通,更能深入的理解人工智能為產(chǎn)品賦能的過程,只有將這個過程了解透徹,才能清晰明確的把握產(chǎn)品的方向,挖掘產(chǎn)品的亮點。
那么,今天我們就從一個最為簡單、易懂的“k-近鄰(KNN)算法”聊起,KNN屬于監(jiān)督學習算法,即可以用于分類,也可以用于回歸,后續(xù)還會逐步為大家介紹一些常用的其他算法。
KNN的核心思想可以用一句俗語表達:“物以類聚、人以群分”,想了解一個人,可以看他交什么樣的朋友。即它的核心思想是:如果一個樣本在特征空間中的k個最相鄰的樣本(距離最近的樣本)中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。該方法在確定分類決策上只依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。
這里面提及的距離,一般可以選用歐氏距離、曼哈頓距離、閔式距離等等公式進行計算,對于我們初步了解的產(chǎn)品經(jīng)理來講,就不上各種公式了。
我們用這個圖做一個簡單的介紹,藍色方形(用B標識)和紅色三角(R)代表兩個不同的分類,綠色圓形(C)是待分類樣本,根據(jù)KNN的思想,如果K=3,則C的最近鄰有1B、2R,根據(jù)少數(shù)服從多數(shù)原則,C應該屬于“R”的類型。如果k=5呢?C的最近鄰有3B、2R,C是不是應該屬于“B”類型了呢?
其中判定類別也有兩種方法:
- 投票決定:少數(shù)服從多數(shù),近鄰中哪個類別的點最多就分為哪類。
- 加權(quán)投票法:根據(jù)距離的遠近、對鄰近的投票進行加權(quán),距離越近咋權(quán)重越大(權(quán)重為距離平方的倒數(shù)。)
看到這兒,是不是有不少小伙伴產(chǎn)生了疑問,那該如何選擇K值呢?K值的大小又將如何影響模型的效果呢?
關(guān)于K值的選擇,需要注意:
- k值過大,非相似數(shù)據(jù)被包含較多,造成噪聲增加而導致分類結(jié)果的降低;
- k值過小,得到的鄰近數(shù)過少,會降低分類精度,同時也會放大噪聲數(shù)據(jù)的干擾;
經(jīng)驗規(guī)則:k一般低于訓練樣本數(shù)的平方根,通常采用交叉檢驗來確定。
接下來我們簡單介紹一下訓練過程,有如下幾步:
- 準備數(shù)據(jù),對數(shù)據(jù)進行預處理;
- 選用合適的數(shù)據(jù)結(jié)構(gòu)存儲訓練數(shù)據(jù)和測試元組;
- 設定參數(shù),如k;
- 維護一個大小為k的的按距離由大到小的優(yōu)先級隊列,用于存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作為初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優(yōu)先級隊列;
- 遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優(yōu)先級隊列中的最大距離Lmax
- 進行比較。若L>=Lmax,則舍棄該元組,遍歷下一個元組。若L < Lmax,刪除優(yōu)先級隊列中最大距離的元組,將當前訓練元組存入優(yōu)先級隊列。
- ?遍歷完畢,計算優(yōu)先級隊列中k 個元組的多數(shù)類,并將其作為測試元組的類別。
- 測試元組集測試完畢后計算誤差率,繼續(xù)設定不同的k值重新進行訓練,最后取誤差率最小的k 值。
基本概念和訓練過程我們都簡單的介紹清楚了,下面來講講K近鄰的優(yōu)勢及缺陷。
優(yōu)勢:
- 簡單,易于理解,易于實現(xiàn),無需估計參數(shù),無需訓練;
- 特別適合于多分類問題(multi-modal,對象具有多個類別標簽), kNN比SVM的表現(xiàn)要好。
缺點:
- 計算復雜度高、空間復雜度高;
- 樣本嚴重不平衡時,如果一個類的樣本容量很大,而其他類很小,有可能導致輸入一個新樣本時,被誤判為該分類的概率會很大。
了解了算法的優(yōu)勢和局限性,下面就要了解一下它的適用領(lǐng)域了:
- 模式識別,特別是光學字符識別;
- 統(tǒng)計分類;
- 計算機視覺;
- 數(shù)據(jù)庫,如基于內(nèi)容的圖像檢索;
- 編碼理論(最大似然編碼);
- 數(shù)據(jù)壓縮(mpeg-2標準);
- 向?qū)到y(tǒng);
- 網(wǎng)絡營銷;
- DNA測序
- 拼寫檢查,建議正確拼寫;
- 剽竊偵查;
- 相似比分算法,用來推動運動員的職業(yè)表現(xiàn)。
本文由 @燕然未勒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash ,基于 CC0 協(xié)議。
哈哈哈,作者站在風口??!AI的PM很吃香嘛!想蹭波流量,我是iot的PM,有這個反向的小伙伴歡迎交流~
請問下,圖中各個顏色圖形的位置是怎么定下來的
樣本的特征,決定了它在特征空間中的位置,不過本圖只是個示意而已,比較容易觀察,容易理解。
新人報到,望大師們多加耐心指教
能介紹一下必懂算法有哪些嗎?謝謝??
?分類算法:C4.5,CART,Adaboost,NaiveBayes,KNN,SVM
?聚類算法:KMeans
?統(tǒng)計學習:EM
?關(guān)聯(lián)分析:Apriori
?鏈接挖掘:PageRank
謝謝aixiaozhu
aipm要懂這么詳細的算法嗎
以我個人的理解啊,我覺得咱們產(chǎn)品了解算法的目的和了解技術(shù)的目的相差不多,第一是為了了解技術(shù)邊界,舉個例子,我們在一個文庫產(chǎn)品中設計了一個文章摘要的功能,通過算法針對文章進行摘要,那么我們首先要了解,目前在NLP領(lǐng)域里面,內(nèi)容摘要的實現(xiàn)程度怎樣,算法的結(jié)果不好,會不會影響我們的用戶體驗,看起來驢唇不對馬嘴。
第二個目的是開拓思路,只有我們對于這些知識有個大概的理解,在產(chǎn)品的設計過程中,可能會帶來一些啟發(fā)和靈感,知道我們可以做些什么。
第三個目的是為了盡可能少被忽悠一點兒, ??
當然,我的觀點也是了解基本原理和應用場景對我們來說就不容易了,至于里面的算法實現(xiàn),不必深究,有余力的同學可以學的更深入一點。
謝謝
AI是什么
AI是一款制圖軟件,你可以是Adobe公司出的
皮
特別好,我也是一個特別喜歡ai的pm,是從吳恩達開始入門的,希望能學習到你更多的文章
把你的文章都看了一遍,立馬成為你的粉絲咯。?? 想向你多學習。
初來乍到,感謝捧場