演算法流程
計算待測樣品與訓練集裡每個樣品x的角度距離
角度距離最大的就是所屬的樣品類別
演算法實現
計算夾角余弦
def
anglecos
(x_train,y_train,sample)
:"""
:function 按照夾角余弦距離法計算待測樣品與樣品庫中的相似度
:param x_train: 訓練集 m*n m為樣本個數 n為特徵個數
:param y_train: 訓練集標籤 1*m
:param sample: 待識別樣品
:return: 返回判斷類別
"""label =
0 dismax =-1
*np.inf
for i,train in
enumerate
(x_train)
: dis = np.
sum(train*sample)
/(np.sqrt(np.
sum(train*train)
*np.
sum(sample*sample)))
if dismaxdismax = dis
label = y_train[i]
return label
測試**
from sklearn import datasets
from include.chapter3 import function
import numpy as np
#讀取資料
digits = datasets.load_digits(
)x , y = digits.data,digits.target
#劃分資料集
x_train, y_train, x_test, y_test = function.train_test_split(x,y)
testid = np.random.randint(
0, x_test.shape[0]
)sample = x_test[testid,:]
ans = function.anglecos(x_train,y_train,sample)
print
(ans==y_test[testid]
)
演算法結果true
《模式識別與智慧型計算》二值化的夾角余弦距離法分類
演算法流程 將樣本庫中的每個樣本進行二值化,閾值為 最大值 最小值 2 利用夾角余弦距離法對待測樣品進行分類 演算法實現def erzhianglecos x train,y train,sample function 按照二值夾角余弦距離法計算待測樣品與樣品庫中的相似度 param x train...
模式識別與智慧型計算第一節(模式識別概述)
1 模式識別系統 資料獲取 用計算機語言 可計算數字符號 來表示研究物件 預處理 對研究物件去雜訊,復原等 特徵提取與選擇 對資料進行變換,降緯,簡化處理等 分類決策 歸類 分類器設計 對分類結果進行判斷檢測,誤差分析 2 模式識別主要問題 特徵選擇與優化 特徵選擇 使同類物體緊緻性 組合優化 對映...
《模式識別與智慧型計算》基於類中心的歐式距離法分類
基於類中心的歐式距離法分類 演算法過程 1 選取某一樣本 2 計算類中心 3 計算樣本與每一類的類中心距離,這裡採用歐式距離 4 迴圈計算待測樣品和訓練集中各類中心距離找出距離待測樣品最近的類別 函式 import numpy as np import random deftrain test sp...