機器學習案例 基於KNN手寫數字識別

2021-08-01 13:19:22 字數 907 閱讀 3983

#演算法介紹

之前已經介紹過,簡單來說,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...