国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)

這篇具有很好參考價值的文章主要介紹了【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需要源碼和數(shù)據(jù)集請點贊關(guān)注收藏后評論區(qū)留言私信~~~

KNN算法簡介

KNN(K-Nearest Neighbor)算法是機器學(xué)習(xí)算法中最基礎(chǔ)、最簡單的算法之一。它既能用于分類,也能用于回歸。KNN通過測量不同特征值之間的距離來進(jìn)行分類。

KNN算法的思想非常簡單:對于任意n維輸入向量,分別對應(yīng)于特征空間中的一個點,輸出為該特征向量所對應(yīng)的類別標(biāo)簽或預(yù)測值。

KNN算法是一種非常特別的機器學(xué)習(xí)算法,因為它沒有一般意義上的學(xué)習(xí)過程。它的工作原理是利用訓(xùn)練數(shù)據(jù)對特征向量空間進(jìn)行劃分,并將劃分結(jié)果作為最終算法模型。存在一個樣本數(shù)據(jù)集合,也稱作訓(xùn)練樣本集,并且樣本集中的每個數(shù)據(jù)都存在標(biāo)簽,即我們知道樣本集中每一數(shù)據(jù)與所屬分類的對應(yīng)關(guān)系。

輸入沒有標(biāo)簽的數(shù)據(jù)后,將這個沒有標(biāo)簽的數(shù)據(jù)的每個特征與樣本集中的數(shù)據(jù)對應(yīng)的特征進(jìn)行比較,然后提取樣本中特征最相近的數(shù)據(jù)(最近鄰)的分類標(biāo)簽。

一般而言,我們只選擇樣本數(shù)據(jù)集中前k個最相似的數(shù)據(jù),這就是KNN算法中K的由來,通常k是不大于20的整數(shù)。最后,選擇k個最相似數(shù)據(jù)中出現(xiàn)次數(shù)最多的類別,作為新數(shù)據(jù)的分類。

KNN分類算法的分類預(yù)測過程十分簡單并容易理解:對于一個需要預(yù)測的輸入向量x,我們只需要在訓(xùn)練數(shù)據(jù)集中尋找k個與向量x最近的向量的集合,然后把x的類別預(yù)測為這k個樣本中類別數(shù)最多的那一類。

KNN算法中只有一個超參數(shù)k,k值的確定對KNN算法的預(yù)測結(jié)果有著至關(guān)重要的影響。接下來,我們討論一下k值大小對算法結(jié)果的影響以及一般情況下如何選擇k值。

如果k值比較小,相當(dāng)于我們在較小的領(lǐng)域內(nèi)訓(xùn)練樣本對實例進(jìn)行預(yù)測。這時,算法的近似誤差(Approximate Error)會比較小,因為只有與輸入實例相近的訓(xùn)練樣本才會對預(yù)測結(jié)果起作用。

但是,它也有明顯的缺點:算法的估計誤差比較大,預(yù)測結(jié)果會對近鄰點十分敏感,也就是說,如果近鄰點是噪聲點的話,預(yù)測就會出錯。因此,k值過小容易導(dǎo)致KNN算法的過擬合。

同理,如果k值選擇較大的話,距離較遠(yuǎn)的訓(xùn)練樣本也能夠?qū)嵗A(yù)測結(jié)果產(chǎn)生影響。這時候,模型相對比較魯棒,不會因為個別噪聲點對最終預(yù)測結(jié)果產(chǎn)生影響。但是缺點也十分明顯:算法的近鄰誤差會偏大,距離較遠(yuǎn)的點(與預(yù)測實例不相似)也會同樣對預(yù)測結(jié)果產(chǎn)生影響,使得預(yù)測結(jié)果產(chǎn)生較大偏差,此時模型容易發(fā)生欠擬合。

因此,在實際工程實踐中,我們一般采用交叉驗證的方式選取k值。通過以上分析可知,一般k值選得比較小,我們會在較小范圍內(nèi)選取k值,同時把測試集上準(zhǔn)確率最高的那個確定為最終的算法超參數(shù)k。

使用KNN進(jìn)行水果分類

部分?jǐn)?shù)據(jù)如下

【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)

預(yù)測結(jié)果和精確度如下

?【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)

部分代碼如下

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
#導(dǎo)入水果數(shù)據(jù)并查看數(shù)據(jù)特征
fruit = pd.read_csv('fruit_data.txt','\t')
# 獲取屬性
X = fruit.iloc[:,1:]
# 獲取類別
Y = fruit.iloc[:,0].T
# 劃分成測試集和訓(xùn)練集
fruit_train_X,fruit_test_X,fruit_train_y,fruit_test_y=train_test_split(X,Y,test_size=0.2, random_state=0)
#分類eighborsClassifier()
#對訓(xùn)練集進(jìn)行訓(xùn)練
knn.fit(fruit_train_X, fruit_train_y)
#對測試集數(shù)據(jù)的水果類型進(jìn)行預(yù)測
predict_result = knn.predict(fruit_test_X)
print('測試集大?。?,fruit_test_X.shape)
print('真實結(jié)果:',fruit_test_y)
print('預(yù)it_test_y))

?繪制KNN分類器圖

分類結(jié)果如下 可以看到鳶尾花數(shù)據(jù)集大致分為三類

【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)

?部分代碼如下

import numpy as np
from sklearn import neighbors, datasets
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 建立KNN模型,使用前兩個特征
iris = datasets.load_iris()
irisData = iris.data[:, :2]   # Petal length、Petal width特征
irisTarget = iris.target
clf = neors.KNeighborsClassifier(5) # K=5
clf.fit(irisData, irisTarget)

#繪制plot 
ColorMp = ListedColormap(['#005500', '#00AA00', '#00FF00'])
X_min, X_max = irisData[:, 0].min(), irisData[:, 0].max()
Y_min
label = clf.predict(np.c_[X.ravel(), Y.ravel()])
label = label.reshape(X.shape) 
#繪圖并顯示
plt.figure()
plt.pcolormesh(X,Y,label,cmap=ColorMp)
plt.show()

創(chuàng)作不易 覺得有幫助請點贊關(guān)注收藏~~~文章來源地址http://www.zghlxwxcb.cn/news/detail-429775.html

到了這里,關(guān)于【Python機器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實戰(zhàn)(附源碼和數(shù)據(jù)集)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 機器學(xué)習(xí)之Python使用KNN算法對鳶尾花進(jìn)行分類

    機器學(xué)習(xí)之Python使用KNN算法對鳶尾花進(jìn)行分類

    要求: (1)數(shù)據(jù)集劃分為測試集占20%; (2)n_neighbors=5; (3)評價模型的準(zhǔn)確率; (4)使用模型預(yù)測未知種類的鳶尾花。 (待預(yù)測數(shù)據(jù):X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]]) iris數(shù)據(jù)集有150組,每組4個數(shù)據(jù)。 第一步:引入所需庫 第二步:劃分測試集占20% test_size為

    2024年02月08日
    瀏覽(29)
  • 機器學(xué)習(xí)實戰(zhàn):Python基于Logistic邏輯回歸進(jìn)行分類預(yù)測(一)

    機器學(xué)習(xí)實戰(zhàn):Python基于Logistic邏輯回歸進(jìn)行分類預(yù)測(一)

    1.1 Logistic回歸的介紹 邏輯回歸( Logistic regression ,簡稱 LR )是一種經(jīng)典的二分類算法,它將輸入特征與一個sigmoid函數(shù)進(jìn)行線性組合,從而預(yù)測輸出標(biāo)簽的概率。該算法常被用于預(yù)測離散的二元結(jié)果,例如是/否、真/假等。 優(yōu)點: 實現(xiàn)簡單。Logistic回歸的參數(shù)可以用極大似然

    2024年02月08日
    瀏覽(27)
  • 機器學(xué)習(xí)實戰(zhàn):Python基于DT決策樹模型進(jìn)行分類預(yù)測(六)

    機器學(xué)習(xí)實戰(zhàn):Python基于DT決策樹模型進(jìn)行分類預(yù)測(六)

    1.1 決策樹的介紹 決策樹(Decision Tree,DT)是一種類似流程圖的樹形結(jié)構(gòu),其中內(nèi)部節(jié)點表示特征或?qū)傩?,分支表示決策規(guī)則,每個葉節(jié)點表示結(jié)果。在決策樹中,最上方的節(jié)點稱為根節(jié)點。它學(xué)習(xí)基于屬性值進(jìn)行分區(qū)。它以遞歸方式進(jìn)行分區(qū),稱為遞歸分區(qū)。這種類似流程

    2023年04月27日
    瀏覽(19)
  • 機器學(xué)習(xí)與深度學(xué)習(xí)——通過knn算法分類鳶尾花數(shù)據(jù)集iris求出錯誤率并進(jìn)行可視化

    機器學(xué)習(xí)與深度學(xué)習(xí)——通過knn算法分類鳶尾花數(shù)據(jù)集iris求出錯誤率并進(jìn)行可視化

    什么是knn算法? KNN算法是一種基于實例的機器學(xué)習(xí)算法,其全稱為K-最近鄰算法(K-Nearest Neighbors Algorithm)。它是一種簡單但非常有效的分類和回歸算法。 該算法的基本思想是:對于一個新的輸入樣本,通過計算它與訓(xùn)練集中所有樣本的距離,找到與它距離最近的K個訓(xùn)練集樣

    2024年02月03日
    瀏覽(24)
  • 機器學(xué)習(xí)實戰(zhàn):Python基于支持向量機SVM-RFE進(jìn)行分類預(yù)測(三)

    機器學(xué)習(xí)實戰(zhàn):Python基于支持向量機SVM-RFE進(jìn)行分類預(yù)測(三)

    1.1 支持向量機的介紹 支持向量機( Support Vector Machine,SVM )是一種監(jiān)督學(xué)習(xí)的分類算法。它的基本思想是找到一個能夠最好地將不同類別的數(shù)據(jù)分開的超平面,同時最大化分類器的邊際(margin)。SVM的訓(xùn)練目標(biāo)是最大化間隔(margin),即支持向量到超平面的距離。 具體地,

    2024年02月05日
    瀏覽(94)
  • 用K近鄰(KNN)機器學(xué)習(xí)算法進(jìn)行股票走勢預(yù)測-Python

    用K近鄰(KNN)機器學(xué)習(xí)算法進(jìn)行股票走勢預(yù)測-Python

    K近鄰(KNN,K-Nearest Neighbors)是最簡單的機器學(xué)習(xí)算法之一,可用于回歸和分類。KNN是一種“惰性”學(xué)習(xí)算法,從技術(shù)上講,它不訓(xùn)練模型來進(jìn)行預(yù)測。K近鄰的邏輯是,假設(shè)有一個觀測值,這個觀測值被預(yù)測屬于離它k個最近觀測值中所占比例最大的那一個類。KNN方法是直接嘗試

    2024年02月04日
    瀏覽(24)
  • 【Python機器學(xué)習(xí)】決策樹、邏輯回歸、神經(jīng)網(wǎng)絡(luò)等模型對電信用戶流失分類實戰(zhàn)(附源碼和數(shù)據(jù)集)

    【Python機器學(xué)習(xí)】決策樹、邏輯回歸、神經(jīng)網(wǎng)絡(luò)等模型對電信用戶流失分類實戰(zhàn)(附源碼和數(shù)據(jù)集)

    需要源碼和數(shù)據(jù)集請點贊關(guān)注收藏后評論區(qū)留言私信~~~ 該實例數(shù)據(jù)來自kaggle,它的每一條數(shù)據(jù)為一個用戶的信息,共有21個有效字段,其中最后一個字段Churn標(biāo)志該用戶是否流失 ? 可用pandas的read_csv()函數(shù)來讀取數(shù)據(jù),用DataFrame的head()、shape、info()、duplicated()、nunique()等來初步

    2024年02月03日
    瀏覽(29)
  • 機器學(xué)習(xí)——kNN算法之紅酒分類

    機器學(xué)習(xí)——kNN算法之紅酒分類

    目錄 StandardScaler的使用 KNeighborsClassifier的使用 代碼實現(xiàn) 數(shù)據(jù)集介紹 數(shù)據(jù)集為一份紅酒數(shù)據(jù),總共有 178 個樣本,每個樣本有 13 個特征,這里不會為你提供紅酒的標(biāo)簽,你需要自己根據(jù)這 13 個特征對紅酒進(jìn)行分類。部分?jǐn)?shù)據(jù)如下圖: StandardScaler的使用 由于數(shù)據(jù)中有些特征的

    2024年02月11日
    瀏覽(24)
  • 機器學(xué)習(xí)KNN最鄰近分類算法

    機器學(xué)習(xí)KNN最鄰近分類算法

    KNN (K-Nearest Neighbor) 最鄰近分類算法,其核心思想“近朱者赤,近墨者黑”,由你的鄰居來推斷你的類別。 圖中綠色圓歸為哪一類? 1、如果k=3,綠色圓歸為紅色三角形 2、如果k=5,綠色圓歸為藍(lán)色正方形 參考文章 knn算法實現(xiàn)原理:為判斷未知樣本數(shù)據(jù)的類別,以所有已知樣

    2024年04月10日
    瀏覽(18)
  • 【機器學(xué)習(xí)】分類算法 - KNN算法(K-近鄰算法)KNeighborsClassifier

    「作者主頁」: 士別三日wyx 「作者簡介」: CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」: 對網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》 is_array() 可以 「檢測」 變量是不是 「數(shù)組」 類型。 語法 參數(shù) $var :需要檢

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包