#演算法介紹
之前已經介紹過,簡單來說,k-nn可以看成:有那麼一堆你已經知道分類的資料,然後當乙個新資料進入的時候,就開始跟訓練資料裡的每個點求距離,然後挑離這個訓練資料最近的k個點看看這幾個點屬於什麼型別,然後用少數服從多數的原則,給新資料歸類。
#演算法步驟:
演算法步驟:
step.1—初始化距離為最大值
step.2—計算未知樣本和每個訓練樣本的距離dist
step.3—得到目前k個最臨近樣本中的最大距離maxdist
step.4—如果dist小於maxdist,則將該訓練樣本作為k-最近鄰樣本
step.5—重複步驟2、3、4,直到未知樣本和所有訓練樣本的距離都算完
step.6—統計k-最近鄰樣本中每個類標號出現的次數
step.7—選擇出現頻率最大的類標號作為未知樣本的類標號
#案例分析
首先乙個cnn演算法
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
def classify0(inx,dataset,labels,k):
datasetsize = dataset.shape[0]
diffmat = tile(inx,(datasetsize,1)) - dataset
sqdiffmat = diffmat**2
sqdistances = sqdiffmat.sum(axis = 1)
機器學習(二) kNN手寫數字識別
一 knn演算法 1 knn演算法是機器學習的入門演算法,其中不涉及訓練,主要思想是計算待測點和參照點的距離,選取距離較近的參照點的類別作為待測點的的類別。2,距離可以是歐式距離,夾角余弦距離等等。3,k值不能選擇太大或太小,k值含義,是最後選取距離最近的前k個參照點的類標,統計次數最多的記為待測點...
基於KNN的手寫數字識別
from numpy import import operator import os def classify0 inx,dataset,labels,k 構造分類器 knn原理 datasetsize dataset.shape 0 diffmat tile inx,datasetsize,1 ...
機器學習基礎 KNN實現手寫數字識別
k 近鄰演算法是一種監督機器學習分類演算法。它的思想很簡單,計算測試點與樣本集合之間的歐幾里得距離 直線距離 找到測試點與樣本集合中距離最近的k個樣本集,這k個樣本集合中對應的最多的分類就可以作為測試點的分類。本文使用的資料集,解壓後的testdigits資料夾為測試檔案,trainingdigit...