999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于KNN的花卉分類技術應用

2023-08-21 09:14:05楊晨林國宇
無線互聯科技 2023年12期

楊晨 林國宇

摘要:KNN算法在數據分析領域有著重要的應用。文章針對KNN算法中參數k選擇不合理將導致分類結果準確率低的問題,將K折交叉驗證法應用于KNN算法中k值的選取,通過k值分析圖選取最佳k值,利用Python語言并基于Sklearn庫實現KNN算法。在鳶尾花數據集上的實驗表明,該模型是進行花卉分類的有效方法。

關鍵詞:KNN算法;聚類;花卉分類

中圖分類號:TP399? 文獻標志碼:A

0 引言

分類算法是人工智能領域研究的重要分支,通過對比樣本間的相似度進行分類。分類算法已被廣泛應用于智慧園林[1],用于對城市中的各類花卉進行識別和檢測,從而有針對性地預防各類花卉病蟲害,保護植物的健康生長,有利于加快我國城市的綠色低碳發展。根據植物的生長特性和形態屬性來對花朵進行描述是識別植物的高效、簡便的方法。

KNN作為分類算法中最簡潔清晰而邏輯明了、快速簡單且最高效的分類算法之一[2] ,在不同領域都得到了廣泛應用。本文旨在利用KNN算法對植物的花朵進行識別,并在鳶尾花數據集上進行驗證。

1 KNN算法介紹

KNN算法通常被人們泛稱為最近鄰居算法或被稱為K最近鄰(K-Nearest Neighbor)分類算法,KNN算法的一個指導性思想是“近紅赤,近墨黑”,根據當前已知的最近鄰居來推斷出所屬類別。KNN算法有計算簡單與便捷、精準度比較高、對異常和數值誤差不特別敏感等突出特點。其首次是在1968年由Cover和Hart發表出來,發展到當代在理論上已經相對完善,是一種舉足輕重的非參數類的分類算法。非參數類的特性使得該算法僅僅只通過對花卉特征數據進行擬合來分析,而不對特征數據進行參數修正后再進行分類,使得最終的分類結果能更加貼合實際情況。

首先,計算每個待排序訓練樣本數據與已知訓練類別數據之間的最小距離,并盡可能多地找到下一個可能最接近待排序結果的訓練樣本數據中的前k個相鄰點。其次,在進行分類或檢驗后的訓練樣本數據中包含的訓練要素類別數可以僅根據該樣本的相鄰的各訓練要素數據或所屬訓練要素數據的類別確定[3]。具體實現算法步驟如下:

(1)創建用來訓練的樣本集合D。

(2)設定k值。確定一個初始值,根據多次重復試驗得出最優的結果。

(3)計算得出各個測試樣本與每個訓練樣本間的歐氏距離。從訓練樣本集合中選出和測試樣本的歐式距離最近的樣本為作為測試樣本的k個鄰近值。構建一個n維空間向量,將樣本放置于其對應的n維空間Rn中,根據歐式距離定義,把任意的樣本x表示為特征向量x=(x1,x2…,xm),則xm為第m個特征的值,設任意兩個樣本xi和xj之間的距離定義為d(xi,xj),其中,d(xi,xj)=∑ni=1(xi-yi)2。

(4)選擇k個近鄰樣本。將根據公式計算出來的歐式距離從小到大排序,選擇歐式距離相對接近的k個樣本作為測試樣本中的k個鄰近樣本。

(5)尋找主導類型。假設k個近鄰樣本為x1,x2,…,xk,其類型標簽設為c1,c2,…,ct,將這些類型標簽統一歸類于標簽集C。根據k個近鄰的類型采用最大概率法對鄰近樣本進行分類。該方法中的概率是每一類型的k個鄰近樣本占所有鄰近樣本的比例,用每種類型在k個鄰近中的樣本數量除以總數k來進行計算。將其中具有最大概率的類型作為主導類型。設S={s1,s2,…st}為k個近鄰中每類別樣本數量的集合。設Ω=SMax為主導類型。

(6)將待測樣本歸為Ω類。重復執行3,4,5直到Ω趨于穩定。

1.1 KNN算法的優點

KNN算法操作簡便、易于理解,易于處理多模分類和多標簽分類問題(Multi-modal,即研究對象具有多種類型),尤其是對于鳶尾花這類有具體明顯特征的植物。同時,當類別體系的變化和訓練集的變化時重新訓練很便捷(例如:對鳶尾花添加新的訓練樣本)。不需要應用訓練,只需要輸入樣本集計算機完成分類后,當再輸入新的樣本時就會識別并自動分類出來。

1.2 KNN算法的不足

KNN算法中的參數k表示著k個距離最近的樣本,結果的正確與否與k的取值有著很大的關系,如圖1所示。當k=3時,圖中方塊應該為三角形,而k=5時圖中的方塊應該為圓形,所以參數k不同的取值有著不同的結果。選取過小的k值,使得訓練對象數量太少,導致分類結果受到噪聲影響大大增加,同時模型會變得復雜化,容易出現擬合結果過擬合的現象,但k值如果過大,則會引入過多的噪聲樣本,導致分類結果的準確度降低,同時模型又變得單一化,使得結果出現欠擬合的現象。總之,k值選擇太小導致鄰居數量太少,會降低分類精度,還會進一步放大噪聲數據和干擾信號數據。如果k的值太大,那么在樣本分類中真正屬于該類的數據樣本較少,會導致實際上不相似的數據也會包含在內,導致噪聲增加,分類效果降低[2]。由于傳統上的KNN算法往往需通過反復實驗和計算來準確選擇合適的k值,本文主要采用交叉驗證法選取最優值的k值。

2 利用 KNN算法實現植物分類

本文通過交叉驗證的方法尋找最優k值,利用植物花朵的特征來判斷類別。使用Python語言實現該實驗,數據集采用Sklearn官方提供的鳶尾花相關數據集。

2.1 K折交叉驗證的優點

K折交叉驗證[4]可以解決植物花朵數據集的數據量不夠大的問題和KNN算法中k值參數尋優的問題,該方法能夠有效提高模型評估的準確性,對于樣本外數據有更高的準確率,從而最大程度地發揮原始的所有樣本數據的作用。

2.2 k值尋優

KNN算法中參數k的取值對結果有顯著的影響,本文考慮通過K折交叉驗證的一種方法來準確選取k的值,該驗證方法將原始的所有樣本數據分成n份相同容量的樣本子集(“折”),隨機選取其中一份作為測試集,接著拿其他的n-1份樣本數據組成訓練集訓練模型,為樣本進行訓練,接著計算各個模型在測試集上的均方誤差MSEi,將n次MSEi取算術平均后得到CVn。

CVn=1n∑ni=1MSEi

根據上式計算出錯誤率。筆者先取較小的k值,接著逐漸增加k值的大小,再通過計算驗證集合的方差,根據方差數值和錯誤率繪制分析圖,錯誤率最低處對應的k值即為最優解,選取對應k值為KNN算法中的k個距離最近的樣本。

2.3 算法實現

本文使用經典的鳶尾花數據集,數據集包含了鳶尾花、變色鳶尾花、弗吉尼亞鳶尾花3種不同的花型品種中鳶尾花的花瓣長度、花萼長度和花萼寬度還有花瓣寬度這4項特征屬性值,鳶尾花形態如圖2所示。

使用Python語言中的Sklearn庫對KNN算法進行模型搭建,本文使用KNN算法進行花卉分類的算法步驟如下。

(1)計算錯誤率:讀取Sklearn 官方提供的鳶尾花相關數據集并循環設置k值,其中k∈[1,31],根據K折交叉驗證的方法計算出錯誤率。

(2)繪圖:利用錯誤率與k值繪制分析圖,如圖3所示。

(3)選取k值:通過分析圖可以看出當k接近11時,錯誤率達到最低值。對比實驗采用不同的k值對結果進行分析。

(4)擬合數據:在KNN算法中存在一個重要的權

重參數weights。算法模型本身對應是uniform與distance。uniform參數主要表示距離的大小而與權重參數無關。distance參數表示出來的數據是權重大小和距離的大小成反比,權重越小,距離預測目標越遠。本文分別采用這兩種方式來構建KNN分類器。

(5)結果如圖4所示。圖4為不同k值不同權重下的分類結果。

2.4 結果分析

通過表1看出,本文實現的KNN算法在k=11時,無論在權重為distance的情況下還是uniform的情況下,其準確率都明顯高于其他的取值。當k=11時,色彩范圍邊界整體上要比其他取值時更平滑,并在兩種權重下都能夠取得較好的效果,說明本文算法具有有效性和魯棒性,如圖4所示。

3 結語

在KNN算法中,結果的準確性與參數k的取值密切相關。為了選取最優的k值,本文采用了K折交叉驗證方法。通過根據鳶尾花的特征描述對花卉進行品類劃分,本文在KNN算法的不同權重策略下進行實驗。實驗結果表明,使用K折交叉驗證方法選擇參數k時,準確率更高。然而,本文的研究還存在一些不足。盡管準確率有所提高,但最高僅達到76%,仍有較大的改進空間。另外,K折交叉驗證方法在選取k值時仍需要通過觀察來確定,缺乏自適應選擇的能力。因此,有效解決上述問題將成為下一步研究的主要方向。未來的研究可以致力于進一步提高分類準確率,并探索自適應選擇參數k的方法,以改進KNN算法在花卉分類中的應用。

參考文獻

[1]謝建梅.基于圖像處理的農作物病蟲害分類算法的研究[J].吉林農業科技學院學報,2021(6):9-13.

[2]竇小凡.KNN算法綜述[J].通訊世界,2018(10):273-274.

[3]SUN J, DU W, SHI N. A survey of KNN algorithm[J]. Information Engineering and Applied Computing, 2018(1):10.

[4]BENGIO Y, GRANDVALET Y. No unbiased estimator of the variance of K-Fold cross-validation[J]. The Journal of Machine Learning Research,2004 (5) : 1089-1105.

(編輯 王永超)

Research on flower classification technology based on KNN

Yang? Chen, Lin? Guoyu

(Guangzhou College of Technology and Business, Foshan 528131, China)

Abstract:? The KNN algorithm plays a crucial role in data analysis. This paper addresses the issue of low classification accuracy resulting from the improper selection of parameter k in the KNN algorithm. To tackle this problem, the K-fold cross-validation method is employed for selecting the optimal value of k in the KNN algorithm. The best k value is determined through an analysis of the k value diagram. The KNN algorithm is implemented using the Python language and Sklearn library. Experimental results on the iris dataset demonstrate that this model is an effective approach for flower classification.

Key words: KNN algorithm; clustering; flowers classification

主站蜘蛛池模板: 国产aaaaa一级毛片| 国产欧美视频一区二区三区| 超碰免费91| 成人精品午夜福利在线播放| 亚洲精品国产首次亮相| 久久精品电影| 久久综合色天堂av| 亚洲无码高清一区二区| 青青国产视频| 色视频久久| 亚洲欧洲日韩久久狠狠爱| 在线观看亚洲成人| 国产精品无码作爱| 欧美日韩亚洲国产| 国产粉嫩粉嫩的18在线播放91 | 国产精品入口麻豆| 欧美在线精品怡红院| 中文字幕精品一区二区三区视频| 小说 亚洲 无码 精品| 71pao成人国产永久免费视频| 国产极品美女在线播放| 国产精品污污在线观看网站| 91成人免费观看在线观看| 国产一区二区三区夜色| 亚洲欧美一级一级a| 欧美a在线视频| 亚洲天堂久久久| 精品少妇人妻无码久久| 免费无遮挡AV| 99精品国产自在现线观看| 亚洲综合第一区| 亚洲欧洲日韩国产综合在线二区| 亚洲视频在线观看免费视频| 国产成人8x视频一区二区| 看国产毛片| 午夜a视频| 国内精自线i品一区202| 蜜臀AV在线播放| 亚洲av日韩综合一区尤物| 伊人91在线| 在线观看视频一区二区| 高清大学生毛片一级| 亚洲综合第一页| 99精品在线看| 欧美综合中文字幕久久| 国产精品一区不卡| 美女裸体18禁网站| 久久国产香蕉| 欧美国产日产一区二区| 成人欧美日韩| 人妻中文字幕无码久久一区| 国产欧美日韩视频怡春院| 国产精品男人的天堂| 国产精品妖精视频| 女人一级毛片| 国产97视频在线| 就去色综合| 日韩一区精品视频一区二区| 国产精品亚洲va在线观看| 久久人妻xunleige无码| 大香伊人久久| 秘书高跟黑色丝袜国产91在线| 精品人妻无码区在线视频| 无遮挡国产高潮视频免费观看| 2020亚洲精品无码| 国产特级毛片| 中文字幕在线观看日本| 国产主播喷水| 四虎永久免费地址| 制服丝袜 91视频| 国产欧美视频一区二区三区| 波多野结衣二区| 亚洲欧洲日产国码无码av喷潮| 国产精品第三页在线看| 亚洲美女一区| 精品成人一区二区三区电影 | 综合久久五月天| 久久精品女人天堂aaa| 成人a免费α片在线视频网站| 国产精品污视频| 98超碰在线观看| 亚洲天堂网站在线|