機器學(xué)習(xí)實戰(zhàn)之knn算法pandas
機器學(xué)習(xí)實戰(zhàn)之knn算法pandas,供大家參考,具體內(nèi)容如下
開始學(xué)習(xí)機器學(xué)習(xí)實戰(zhàn)這本書,打算看完了再回頭看 周志華的 機器學(xué)習(xí)。機器學(xué)習(xí)實戰(zhàn)的代碼都是用numpy寫的,有些麻煩,所以考慮用pandas來實現(xiàn)代碼,也能回顧之前學(xué)的 用python進行數(shù)據(jù)分析。感覺目前章節(jié)的測試方法太渣,留著以后學(xué)了更多再回頭寫。
# coding: gbk import pandas as pd import numpy as np def getdata(path): data = pd.read_csv(path, header=None, sep='\t') character = data.iloc[:, :-1] label = data.iloc[:, -1] chara_max = character.max() chara_min = character.min() chara_range = chara_max - chara_min normal_chara = (character - chara_min) / chara_range return normal_chara, label # 獲得歸一化特征值和標(biāo)記 def knn(inX, normal_chara, label, k): data_sub = normal_chara - inX data_square = data_sub.applymap(np.square) data_sum = data_square.sum(axis=1) data_sqrt = data_sum.map(np.sqrt) dis_sort = data_sqrt.argsort() k_label = label[dis_sort[:k]] label_sort = k_label.value_counts() res_label = label_sort.index[0] return res_label # knn算法分類
小編為大家分享一段代碼:機器學(xué)習(xí)--KNN基本實現(xiàn)
# _*_ coding _*_ import numpy as np import math import operator def get_data(dataset): x = dataset[:,:-1].astype(np.float) y = dataset[:,-1] return x,y # def cal_dis(a,b): # x1,y1 = a[:] # x2,y2 = b[:] # dist = math.sqrt(math.pow(2,x2)-math.pow(2,x1)) def knnclassifer(dataset,predict,k=3): x,y = get_data(dataset) dic = {} distince = np.sum((predict-x)**2,axis=1)**0.5 sorted_dict = np.argsort(distince)#[2 1 0 3 4] countLabel = {} for i in range(k): label = y[sorted_dict[i]] # print(i,sorted_dict[i],label) countLabel[label] = countLabel.get(label,0)+1 new_dic = sorted(countLabel,key=operator.itemgetter(0),reverse=True) return new_dic[0][0] if __name__ == '__main__': dataset = np.loadtxt("dataset.txt",dtype=np.str,delimiter=",") predict = [2,2] label = knnclassifer(dataset,predict,3) print(label)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python新手入門webpy小應(yīng)用開發(fā)
本文主要介紹了Python新手入門webpy小應(yīng)用開發(fā),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07基于數(shù)據(jù)歸一化以及Python實現(xiàn)方式
今天小編就為大家分享一篇基于數(shù)據(jù)歸一化以及Python實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Python利用reportlab實現(xiàn)制作pdf報告
這篇文章主要為大家詳細介紹了reportlab生成流文件格式、reportlab分頁和圖片流文件寫入reportlab等內(nèi)容,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-12-12Python使用面向?qū)ο蠓绞絼?chuàng)建線程實現(xiàn)12306售票系統(tǒng)
目前python 提供了幾種多線程實現(xiàn)方式 thread,threading,multithreading ,其中thread模塊比較底層,而threading模塊是對thread做了一些包裝,可以更加方便的被使用2015-12-12