亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python基于KNN算法怎么實現尾鳶花數據集分類

發布時間:2022-01-12 17:19:40 來源:億速云 閱讀:139 作者:iii 欄目:大數據

本文小編為大家詳細介紹“Python基于KNN算法怎么實現尾鳶花數據集分類”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python基于KNN算法怎么實現尾鳶花數據集分類”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

KNN模型理論      
K最近鄰分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別。KNN算法中,所選擇的鄰居都是已經正確分類的對象。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。
KNN方法雖然從原理上依賴于極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
    
KNN算法流程      
1. 準備數據,對數據進行預處理;
2. 選用合適的數據結構存儲訓練數據和測試元組;
3. 設定參數;
4.維護一個大小為k的的按距離由大到小的優先級隊列,用于存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作為初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優先級隊列;
5. 遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優先級隊列中的最大距離Lmax;
6. 進行比較。若L>=Lmax,則舍棄該元組,遍歷下一個元組。若L < Lmax,刪除優先級隊列中最大距離的元組,將當前訓練元組存入優先級隊列;
7. 遍歷完畢,計算優先級隊列中k 個元組的多數類,并將其作為測試元組的類別;
8. 測試元組集測試完畢后計算誤差率,繼續設定不同的k值重新進行訓練,最后取誤差率最小的k 值。
     
數據集準備      
Iris(鳶尾花)數據集是多重變量分析的數據集。數據集包含150行數據,分為3類,每類50行數據。每行數據包含4個屬性:Sepal Length(花萼長度)、Sepal Width(花萼寬度)、Petal Length(花瓣長度)和Petal Width(花瓣寬度)。可通過這4個屬性預測鳶尾花卉屬于三個種類(Setosa,Versicolour,Virginica)中的哪一類。
     
數據預處理      

import pandas as pd              df = pd.read_csv('iris.csv')# 讀入數據              df.columns = ['Sepal length', 'Sepal width', 'Petal length', 'Petal width', 'Species']          df.head()# 查看前5條數據   
數據集結果如下圖所示:  
Python基于KNN算法怎么實現尾鳶花數據集分類
   df.describe()# 查看數據信息
對于數據集做描述,結果如下所示:
Python基于KNN算法怎么實現尾鳶花數據集分類        
           
K-最近鄰算法            


 
   
   import numpy as np #使用K-近鄰算法對鳶尾花數據進行交叉驗證
      
    
    from sklearn.datasets import load_iris
      
    
    import matplotlib.pyplot as plt
   #下載數據集
      
    
    iris = load_iris()
      
    
    data = iris.data[:,:2]
      
    
    target = iris.target
      
    
    print (data.shape)#(150,2)
      
    
    print (data[:10])
      
    
    print (target[:10])
      
    
    label = np.array(target)
      
    
    index_0 = np.where(label==0)
      
    
    plt.scatter(data[index_0,0],data[index_0,1],marker='x',color = 'b',label = '0',s = 15)
      
    
    index_1 =np.where(label==1)
      
    
    plt.scatter(data[index_1,0],data[index_1,1],marker='o',color = 'r',label = '1',s = 15)
    
    
    index_2 =np.where(label==2)
      
    
    plt.scatter(data[index_2,0],data[index_2,1],marker='s',color = 'g',label = '2',s = 15)
      
    
    plt.xlabel('X1')
      
    
    plt.ylabel('X2')
      
    
    plt.legend(loc = 'upper left')
      
    
    plt.show()
Python基于KNN算法怎么實現尾鳶花數據集分類

讀到這里,這篇“Python基于KNN算法怎么實現尾鳶花數據集分類”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

友谊县| 云和县| 富源县| 宣化县| 四平市| 衡水市| 搜索| 临高县| 类乌齐县| 苍溪县| 满洲里市| 白玉县| 望奎县| 彰化市| 建德市| 小金县| 屏东县| 台北县| 民和| 和田市| 通辽市| 阿拉善右旗| 寿光市| 宣武区| 桦川县| 砀山县| 新巴尔虎右旗| 海宁市| 博客| 竹北市| 娄底市| 上饶市| 历史| 绵竹市| 永康市| 林西县| 宜良县| 诸暨市| 桑日县| 教育| 家居|