機器學習實戰之knn演算法pandas

2022-10-04 17:18:11 字數 2122 閱讀 6915

機器學習實戰之knn演算法pandas,供大家參考,具體內容如下

開始學習機器學習實戰這本書,打算看完了再回頭看 周志華的 機器學習。機器學習實戰的**都是用numpy寫的,有些麻煩,所以考慮用pandas來實現**,也能回顧之前學的 用python進行資料分析。感覺目前章節的測試方法太渣,留著以後學了更多再回頭寫。

# coding: gbk

import pandas as pd

import numpy as np

def getdata(path):

data = pd.read_csv(path, header 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 gfeaxmnormal_chara, label # 獲得歸一化特徵值和標記

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演算法分類

小編為大家分享一段**:機器學習--knn基本實現

# _*_ 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("datgfeaxmasetgfeaxm.txt",dtype=np.str,delimiter=",")

predict = [2,2]

label = knnclassifer(dataset,predict,3)

print(label)

本文標題: 機器學習實戰之knn演算法pandas

本文位址:

機器學習實戰之knn演算法

程式 author xiaoyun from numpy import import operator def createdataset group array 1.0,0.9 1.0,1.0 0.1,0.2 0.0,0.1 labels a a b b return group,labels d...

機器學習實戰之KNN演算法

1 knn分類演算法介紹 演算法實現原理 存在乙個樣本資料集,將需要分類的輸入值與樣本資料集計算歐式距離,將歐式距離由小到大進行排序,取前k次最小距離對應的樣本資料集,對該樣本資料集的類別進行統計,其 現次數最多的類別為輸入值的預判類別。歐式距離計算公式 假設a點座標為 x1,y1 b點座標為 x2...

《機器學習實戰》之knn演算法

買了王斌老師翻譯的 機器學習實戰 一書,裡面全是乾貨,既可以練python,又可以學習機器學習演算法知識,挺不錯的,學習一些東西這裡分享下。k 近鄰演算法 knn 它的核心思想就一句話,如果兩個東西各方面屬性都很相似,那麼這兩個東西屬於同一類。k的意思是有很多東西和你要判斷的東西相似 稱作x 那麼找...