日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python機器學習之底層實現KNN

瀏覽:112日期:2022-06-16 11:07:57
一、導入數據

借助python自帶的pandas庫導入數據,很簡單。用的數據是下載到本地的紅酒集。

代碼如下(示例):

import pandas as pddef read_xlsx(csv_path): data = pd.read_csv(csv_path) print(data) return data二、歸一化

KNN算法中將用到距離,因此歸一化是一個重要步驟,可以消除數據的量綱。我用了歸一化,消除量綱也可以用標準化,但是作為新手,我覺得歸一化比較簡單。

其中最大最小值的計算用到了python中的numpy庫,pandas導入的數據是DateFrame形式的,np.array()用來將DateFrame形式轉化為可以用numpy計算的ndarray形式。

代碼如下(示例):

import numpy as npdef MinMaxScaler(data): col = data.shape[1] for i in range(0, col-1):arr = data.iloc[:, i]arr = np.array(arr) #將DataFrame形式轉化為ndarray形式,方便后續用numpy計算min = np.min(arr)max = np.max(arr)arr = (arr-min)/(max-min)data.iloc[:, i] = arr return data三、分訓練集和測試集

先將數據值和標簽值分別用x和y劃分開,設置隨機數種子random_state,若不設置,則每次運行的結果會不相同。test_size表示測試集比例。

def train_test_split(data, test_size=0.2, random_state=None): col = data.shape[1] x = data.iloc[:, 0:col-1] y = data.iloc[:, -1] x = np.array(x) y = np.array(y) # 設置隨機種子,當隨機種子非空時,將鎖定隨機數 if random_state:np.random.seed(random_state)# 將樣本集的索引值進行隨機打亂# permutation隨機生成0-len(data)隨機序列 shuffle_indexs = np.random.permutation(len(x)) # 提取位于樣本集中20%的那個索引值 test_size = int(len(x) * test_size) # 將隨機打亂的20%的索引值賦值給測試索引 test_indexs = shuffle_indexs[:test_size] # 將隨機打亂的80%的索引值賦值給訓練索引 train_indexs = shuffle_indexs[test_size:] # 根據索引提取訓練集和測試集 x_train = x[train_indexs] y_train = y[train_indexs] x_test = x[test_indexs] y_test = y[test_indexs] # 將切分好的數據集返回出去 # print(y_train) return x_train, x_test, y_train, y_test四、計算距離

此處用到歐氏距離,pow()函數用來計算冪次方。length指屬性值數量,在計算最近鄰時用到。

def CountDistance(train,test,length): distance = 0 for x in range(length):distance += pow(test[x] - train[x], 2)**0.5 return distance五、選擇最近鄰

計算測試集中的一條數據和訓練集中的每一條數據的距離,選擇距離最近的k個,以少數服從多數原則得出標簽值。其中argsort返回的是數值從小到大的索引值,為了找到對應的標簽值。

tip:用numpy計算眾數的方法

import numpy as np#bincount():統計非負整數的個數,不能統計浮點數counts = np.bincount(nums)#返回眾數np.argmax(counts)

少數服從多數原則,計算眾數,返回標簽值。

def getNeighbor(x_train,test,y_train,k): distance = [] #測試集的維度 length = x_train.shape[1] #測試集合所有訓練集的距離 for x in range(x_train.shape[0]):dist = CountDistance(test, x_train[x], length)distance.append(dist) distance = np.array(distance) #排序 distanceSort = distance.argsort() # distance.sort(key= operator.itemgetter(1)) # print(len(distance)) # print(distanceSort[0]) neighbors =[] for x in range(k):labels = y_train[distanceSort[x]]neighbors.append(labels)# print(labels) counts = np.bincount(neighbors) label = np.argmax(counts) # print(label) return label

調用函數時:

getNeighbor(x_train,x_test[0],y_train,3)六、計算準確率

用以上KNN算法預測測試集中每一條數據的標簽值,存入result數組,將預測結果與真實值比較,計算預測正確的個數與總體個數的比值,即為準確率。

def getAccuracy(x_test,x_train,y_train,y_test): result = [] k = 3 # arr_label = getNeighbor(x_train, x_test[0], y_train, k) for x in range(len(x_test)):arr_label = getNeighbor(x_train, x_test[x], y_train, k)result.append(arr_label) correct = 0 for x in range(len(y_test)):if result[x] == y_test[x]: correct += 1 # print(correct) accuracy = (correct / float(len(y_test))) * 100.0 print('Accuracy:', accuracy, '%') return accuracy總結

KNN算是機器學習中最簡單的算法,實現起來相對簡單,但對于我這樣的新手,還是花費了大半天時間才整出來。

在github上傳了項目:https://github.com/chenyi369/KNN

到此這篇關于Python機器學習之底層實現KNN的文章就介紹到這了,更多相關Python底層實現KNN內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本中文字幕一区二区视频| 免费久久精品| 天堂av在线一区| 欧美91精品| re久久精品视频| 伊人成人网在线看| 欧美男人天堂| 极品av在线| 日韩免费视频| 麻豆精品蜜桃| 亚洲天堂成人| 99国产精品久久久久久久| 国产精品毛片在线看| 日韩精品一级二级| 日韩毛片一区| 欧美a级一区二区| 岛国av在线网站| 欧美日韩免费看片| 免费国产自久久久久三四区久久 | 国产精品免费大片| 免费日韩一区二区三区| 97人人精品| 欧美精品羞羞答答| 中文字幕亚洲影视| 免费在线观看一区| 日韩精品一区二区三区免费观影| 婷婷久久一区| 亚洲aa在线| 国产极品嫩模在线观看91精品| 韩国女主播一区二区三区| 天堂8中文在线最新版在线| 黑丝一区二区| 色综合视频一区二区三区日韩 | 国产精品成人3p一区二区三区| 精品高清久久| 99视频精品全国免费| 老司机精品久久| 国产劲爆久久| 国产精品毛片| 欧美激情一区| 欧美在线影院| 国产精品亚洲欧美一级在线| 成人看片网站| 日韩1区2区3区| 精品免费av在线| 日本不卡高清| 亚洲国产专区校园欧美| 欧美一区二区三区久久| 日韩毛片视频| 视频一区日韩精品| 久久精品国产久精国产| 亚洲精品中文字幕乱码| 国产欧美另类| 久久一级电影| 国产精品一区二区美女视频免费看| 欧美gv在线| 奇米色欧美一区二区三区| 日韩国产一区二区三区| 综合亚洲视频| 精品国产免费人成网站| 首页国产欧美久久| 黄色网一区二区| 在线观看亚洲精品福利片| 福利一区二区免费视频| 亚洲免费福利一区| 91视频一区| 日本aⅴ免费视频一区二区三区| 成人免费电影网址| 国产日韩欧美中文在线| 在线一区电影| 国产成人精品亚洲线观看| 亚久久调教视频| 国产99亚洲| 国产精品成人国产| 一区二区三区国产盗摄| 欧美成人基地 | 丝袜美腿一区二区三区| 91亚洲一区| 国产伦精品一区二区三区视频 | 日本va欧美va欧美va精品| 久久精品av| 国产精品17p| 亚洲综合五月| 久久婷婷av| 精品国产aⅴ| 91亚洲精品在看在线观看高清| 久久精品国产亚洲夜色av网站| 精品视频国产| 国产欧美日韩一区二区三区四区| 蜜臀精品久久久久久蜜臀| 少妇久久久久| 日本久久精品| 欧美成人精品一级| 欧美精品国产| 亚洲日本免费电影| 欧美日韩三区| se01亚洲视频 | 国产精品巨作av| 日韩avvvv在线播放| 免费久久精品视频| aⅴ色国产欧美| 婷婷成人在线| 99热精品久久| 成人啊v在线| 欧美黄色网页| 98精品视频| 97精品国产| 国产精品亚洲欧美| 国产精品欧美大片| 国产欧美精品| 国产情侣久久| 国产午夜久久av| 日本不卡高清| 日韩精品a在线观看91| 中文字幕一区二区av| 亚洲欧美一区在线| 国产综合欧美| 亚洲一级特黄| 激情欧美丁香| 日韩一区二区免费看| 国产一区二区高清| 麻豆亚洲精品| 亚洲激情中文| 99国产精品久久久久久久 | 亚洲另类黄色| 中文字幕一区二区精品区| 亚洲一区二区三区在线免费| 蜜臀av国产精品久久久久| 尹人成人综合网| 香蕉精品999视频一区二区| 国产亚洲毛片| 亚洲日产av中文字幕| 四虎在线精品| 国产精品色在线网站| 韩日一区二区| 成人av三级| 久久久久亚洲| 老鸭窝亚洲一区二区三区| 中文一区一区三区免费在线观| 日韩激情精品| 欧美国产专区| 神马久久午夜| 欧美日韩国产一区精品一区| 免费看黄色91| 国产精品xvideos88| 精品欠久久久中文字幕加勒比| 日韩av片子| 亚洲精品一区二区妖精| 亚洲日本三级| 麻豆国产精品一区二区三区| 精品国产午夜肉伦伦影院 | 人在线成免费视频| 午夜精品亚洲| 中文字幕日本一区| 欧美黄色精品| 欧美日韩在线网站| 男女激情视频一区| 国产精品一区二区av日韩在线| 精品国产中文字幕第一页| 亚洲深夜视频| 亚洲欧美日韩国产一区| 日本va欧美va精品| 日韩a一区二区| 亚洲激情黄色| 午夜电影一区| 国产精品久久久久久久久久10秀 | 成人三级高清视频在线看| 欧美日韩少妇| 久久国产欧美日韩精品| 高潮一区二区| 亚洲综合福利| 精品三级av在线导航| 欧美日韩免费观看一区=区三区| 日韩毛片网站| 日韩专区精品| 亚洲视频二区| 国产精品地址| 蜜桃tv一区二区三区| 日韩福利视频网| 99久久久国产精品美女| 日本在线视频一区二区| 热三久草你在线| 亚洲精品成a人ⅴ香蕉片| 福利视频一区| 亚洲人亚洲人色久| 在线精品亚洲欧美日韩国产| 亚洲欧美日本国产| 日本免费一区二区三区四区| 亚洲人亚洲人色久| 亚洲www啪成人一区二区| 欧美亚洲三级| 四虎884aa成人精品最新| 91av一区| 国户精品久久久久久久久久久不卡| 国产精品综合| 亚洲一区国产| 国产一区二区色噜噜| 日韩在线黄色| 国产一区欧美| 激情久久一区二区|