書上有一部分的變數名字很長 然後偷換了一下 就變成了比較容易懂的了
主要是那個小駝峰命名實在是有點蛋疼了 我還是喜歡下劃線
from numpy import *
import operator
def createdataset():
group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels = ['a','a','b','b']
return group,labels
group,labels=createdataset();
#print group
#print labels
def classify0(inx,dataset,labels,k):
row_size=dataset.shape[0]
diffmat = tile(inx,(row_size,1)) - dataset
sqdiffmat = diffmat**2
sqdistances = sqdiffmat.sum(axis=1)
dis = sqdistances**0.5
# print dis
rk = dis.argsort()
# print rk
sum={}
for i in range(k):
j = labels[rk[i]]
sum[j]=sum.get(j,0)+1
_sort=sorted(sum.iteritems(),key=operator.itemgetter(1),reverse=true)
return _sort[0][0]
print classify0([999,999],group,labels,3)
1、確定已知的類別資料集中的點到當前點之間的距離
2、按照距離遞增次序排序
3、選取與當前點距離最小的k個點
4、確定前k個點所在的類別的出現頻率
5、返回前k個點出現頻率最高的類別作為當前點的**分類
筆記 KNN演算法實現分類和回歸
class knn def init self,k 初始化 self.k k deffit self,x,y 訓練方法 x 類陣列型別 二維 待訓練的樣本特徵 屬性 y 一維 樣本的目標值 標籤 self.x np.asarray x 轉化為ndarray陣列型別 self.y np.asarray...
KNN 手動實現
knn 的實質是根據 值 與訓練集之間的距離來進行分類。下面 使用 歐氏距離來表示點集之間的距離,具體 如下 class knn def fit self,x,y self.x train x self.y train y def predict self,x,k x train self.x tr...
KNN簡單實現
knn算是機器學習入門演算法中比較容易理解的了,要注意和k means的一些區別 knn k means 1.knn是分類演算法 2.監督學習 3.餵給它的資料集是帶label的資料,已經是完全正確的資料 1.k means是聚類演算法 2.非監督學習 3.餵給它的資料集是無label的資料,是雜亂...