
發布
注冊
/
登錄近鄰算法的案例
01 K-近鄰算法介紹與實現
關鍵詞:人工智能, 算法
1. 算法簡介1.1 距離公式1.2 K值的選擇1.3 其它概念2. 實例:鳶尾花種類預測
1. 算法簡介
核心理念:根據你的鄰居來推斷出你的類別。
定義: 如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別。
簡單講就是定義一組變量描述一個類,定義一種距離計算公式描述各個實例之間的差異大小,如果被推測的實例與某些已知目標值的實例最近(距離公式最短等),那么則仍為被推測實例的目標值也是該值。
K 近鄰算法使用的模型實際上對應于對特征空間的劃分。距離度量、K 值的選擇和分類決策規則是該算法的三個基本要素。
適用范圍: 字符識別、文本分類、圖像識別等領域。
實現流程:
計算已知類別數據集中點與當前點之間的距離。
按距離遞增次序排序。
選取與當前點距離最小的k個點。
統計前k個點所在的類別出現的頻率。
返回前k個點出現頻率最高的類別作為當前點的預測分類。
1.1 距離公式
距離公式在k近鄰算法中扮演著至關重要的角色,直接影響最終預測結果。常見的距離公式有:
歐式距離
曼哈頓距離
契比雪夫距離
閔可夫斯基距離
上述四種距離計算公式,都將各分量的量綱忽略了,也沒有考慮各分量的分布。
標準化歐式距離
余弦距離
向量夾角的余弦值,越接近與+1表明夾角越小,越接近于-1表明夾角越大。
漢明距離
兩個等長字符串s1與s2的漢明距離為:將其中一個變為另外一個所需要做的最小字符替換次數。
展開 鍛造行業智能制造發展回顧及新技術展望(下)
《鍛造行業智能制造發展回顧及新技術展望》(上)見《鍛造與沖壓》2020 年第19 期
K 近鄰算法在鍛造領域的研究
人工智能中的機器學習
圖7 人工智能的劃分領域
人工智能是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學,該領域的研究包含計算智能、機器感知、機器學習等,如圖7 所示。機器學習作為人工智能的一類,它是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。機器學習專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。機器學習在工業中的典型應用場景為:工況模式識別、設備故障診斷、產品質量分類等。本文將從機器學習中的K 近鄰算法來對鍛造領域進行研究與探討。
K 近鄰算法
K 近鄰法(k-nearest neiors)是機器學習中較基礎的一類算法,它是由Cover 和Hart 于1968 年提出的,是懶惰學習(lazy learning)的著名代表。K 近鄰算法中每個數據都存在一個標簽(label),即數據的最終特征,此外還包含了影響數據特征的各影響因素,K 近鄰算法的工作機制如下:首先給定一個測試樣本,計算它到訓練樣本的距離,然后取離測試樣本最近的k 個訓練樣本,最終用“投票法”選出在這k個樣本中出現最多的類別,就是預測的結果。樣本可以根據比例分為訓練集與測試集,訓練集負責用于模型的訓練,測試集負責模型的實際測試,測試集中測試成功數量與測試集總數量之比為準確率,準確率也是衡量K 近鄰算法好壞的唯一標準。圖8 是筆者運用傳統K 近鄰算法訓練傳統Mnist 數據集的程序。
展開 監督學習 K近鄰算法算例
分析KNN算法不同參數設置對模型預測精度的影響
數據來源于:https://software.intel.com/content/www/cn/zh/develop/training/course-machine-learning.html
數據文件、源程序等均可在QQ群517718332中下載。
第一步:獲取數據
導入數據;
觀察數據格式;
對數據進行初步的處理,比如刪除一些沒有意義的特征,替換一些缺失值等。
# 導入模塊
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelBinarizer,MinMaxScaler
from sklearn.model_selection import GridSearchCV
from sklearn.neiors import KNeiorsClassifier
import numpy as np
import matplotlib.pyplot as plt
# 導入數據
file_path = ".
展開 理論加案例,一文讀懂數據分析中的分類建模
手機垃圾短信過濾,就是分類算法給短信打的標簽,比如0代表正常短信,1代表垃圾短信。
在醫學領域,根據影像檢查判斷腫瘤是良性還是惡性。在工業領域,根據設備工作特征做故障診斷。在材料領域,根據配方快速預測新材料的特性是否符合要求。
前面這些例子大多是二分類,即只有兩個標簽,更細的還有多分類。
比如電子郵件分為正常郵件、廣告郵件、垃圾郵件或釣魚郵件。貸款風險評估,分類為高風險中風險低風險。工廠的質量控制,分類為一級品、二級品以及廢品。
二、分類算法
分類算法的核心邏輯是找到數據中特征與標簽之間的映射關系。簡單來說,就是找到一個“函數”,根據輸入數據的特征,準確地判斷數據所屬的類別。
根據算法原理和實現方式,分類算法可以分為線性算法,非線性算法和集成學習算法。這三類算法分別適合不同的建模場景,訓練出的模型復雜度一般也越來越高。
針對每一大類,數據建模軟件DTEmpower也內置了多種算法。
比如線性算法里的邏輯回歸算法Logistic,它的優點是簡單高效計算成本低,且可解釋性強,比如你能通過模型看出某個特征的重要性。
但線性算法更適合特征與目標變量之間存在線性關系的場景。所謂線性關系,就是因變量y可以寫成y=ax1+bx2+cx3...這種形式。
非線性分類算法里的比較著名的KNN,K近鄰算法。它的優點是原理簡單且能處理非線性數據,對異常值不敏感。但缺點就是計算效率低,處理大數據時比較慢,因此也更適合數據量不大且數據集維度不高的情況。
集成學習算法里,RandomForest隨機森林算法很有代表性,它最顯著的優點是抗過擬合能力強。
所謂過擬合,指的是模型在訓練數據上表現非常好,精度很高。但遇到新數據,精度就崩了。
除了抗過擬合,隨機森林算法的魯棒性也很強。
展開 
機器學習之 特征工程
主要有下面幾種
1.基于統計的異常點檢測算法
(1).簡單統計分析:
比如對屬性值進行一個描述性的統計,從而查看哪些值是不合理的,比如針對年齡來說,我們規定范圍維 [0,100],則不在這個范圍的樣本,則就認為是異常樣本
(2).3δ原則(δ為方差):
當數據服從正態分布:根據正態分布的定義可知,距離平均值3δ之外的概率為 P(|x-μ|>3δ) <= 0.003 ,這屬于極小概率事件,在默認情況下我們可以認定,距離超過平均值3δ的樣本是不存在的。 因此,當樣本距離平均值大于3δ,則認定該樣本為異常值
(3).通過極差和四分位數間距,進行異常數據的檢測
2.基于距離的異常點檢測算法(其實和K近鄰算法的思想一樣)
主要通過距離方法來檢測異常點,將一個數據點與大多數點之間距離大于某個閾值的點視為異常點,主要使用的距離度量方法有絕對距離(曼哈頓距離)、歐氏距離和馬氏距離等方法
3.基于密度的異常點檢測算法
考察當前點周圍密度,可以發現局部異常點
3.1.2缺失值處理
對于一個特征來說
如果所有樣本中的的缺失值極多,則可以直接去掉
如果缺失值不是很多,可以考慮用全局均值,或者中位數進行填充
將此特征作為目標,根據未缺失的數據,利用相關算法模型,對缺失值進行預測
3.1.3數據采樣
數據采樣主要是為了處理樣本不均衡問題的。比如有些情況下,獲取來的數據,正負樣本個數差距很大,而大多數模型對正負樣本比是敏感的(比如邏輯回歸),所以,需要通過數據采樣,來使數據正負樣本均衡
在處理樣本不均衡問題時,主要分為兩種情況
正負樣本個數差距很大,并且同時正負樣本個數本身也很大,這個時候可以采取下采樣方法。
展開