徒手實現 KNN演算法問題彙總

2022-08-22 02:24:16 字數 1892 閱讀 8457

問題一:read_csv()讀取檔案,執行提示檔案不存在

**:import pandas as pd

data=pd.read_csv('d:\machinelearning\study\vehicle.csv')

執行報錯:filenotfounderror: [errno 2] file b'd:\\machinelearning\\study\x0behicle.csv' does not exist: b'd:\\machinelearning\\study\x0behicle.csv'

分析:1 不能使用中文的路徑名和檔名 2

路徑用 "\\"標記不是用\或者/,

修改後**:data=pd.read_csv('d:/machinelearning/study/vehicle.csv') 或 data=pd.read_csv('d:\\machinelearning\\study\\vehicle.csv')

執行後結果:runfile('d:/machinelearning/study/untitled1.py', wdir='d:/machinelearning/study')

原因: 注意windows下路徑中的反斜槓\和斜槓/及雙斜槓\\區別,windows下\是轉義字元,想表達\請用\\

問題二:pandas中利用 .iloc 選取資料&numpy陣列切片操作

**:feature=np.array(data.iloc[:,0:2])

分析: pandas中基本資料結構是series(陣列)和dataframe(類似二維陣列),pandas中提供了index物件,每個 series 都會帶有乙個對應的index,用來標記不同的元素,index 的內容不一定是數字,也可以是字母、中文等,.iloc:根據標籤的所在位置,從0開始計數,選取列,loc:根據dataframe的具體標籤選取列

numpy的陣列切片操作,一般是array[a:b,c:d],首先是看逗號,逗號前是取行的下標範圍a到b-1,逗號後是取列的下標範圍c到d-1 ,前面是行索引,後面是列索引;此處:取行全部資料,列從第0列開始取到第1列,第2列不算。即vehicle.csv陣列中取出長度和寬度,標籤列不取。

問題三:matplotlib.pylab 畫散點圖報語法錯誤

**:plt.scatter(data['length'][data['label]=='car'],data['width'][data['label']=='car'],c='y')

plt.scatter(data['length'][data['label]=='truck'],data['width'][data['label']=='truck'],c='r')

執行報錯:syntaxerror: invalid syntax

分析:matplotlib——pyplot和pylab區別

pylab包括了許多numpy和pyplot模組中常用的函式。測試後發現不是匯入問題,從正確的句子中複製黏貼這兩段**,可執行出正確結果。

修改後**:

plt.scatter(data['length'][data['label']=='car'],data['width'][data['label']=='car'],c='y')  #先取length的數值,裡面有car和truck的長度,再單獨取label那一行為car的值

plt.scatter(data['length'][data['label']=='truck'],data['width'][data['label']=='truck'],c='r')  #先取width的數值,裡面有car和truck的長度,再單獨取label那一行為truck的值

執行後結果:正常顯示散點圖

原因:初始**是打字上去的, 在[data['label]=='car'],這個地方,label後面少打了乙個單引號 ' ,造成句法不通,散點圖不顯示;希望以後在寫**的過程中注意符號的對稱。   

knn常見問題彙總

knn演算法又稱為k最近鄰 k nearest neighbor class ification 分類演算法。所謂的k最近鄰,就是指最接近的k個鄰居 資料 即每個樣本都可以由它的k個鄰居來表達。knn演算法的核心思想是,在乙個含未知樣本的空間,可以根據離這個樣本最鄰近的k個樣本的資料型別來確定樣本的...

knn演算法實現

knn演算法 自己實現 鳶尾花資料集 一.題目描述 題目 自己實現knn演算法 用鳶尾花資料集 knn演算法描述 在訓練集中資料和標籤已知的情況下,輸入測試資料,將測試資料的特徵與訓練集中對應的特徵進行相互比較,找到訓練集中與之最為相似的前k個資料,則該測試資料對應的類別就是k個資料 現次數最多的那...

KNN演算法實現

knn k 近鄰 knn,k nearestneighbor 演算法是一種基本分類與回歸方法,我們這裡只討論分類問題中的 k 近鄰演算法。k 近鄰演算法的輸入為例項的特徵向量,對應於特徵空間的點 輸出為例項的類別,可以取多類。k 鄰演算法假設給定乙個訓練資料集,其中的例項類別已定。分類時,對新的例項...