《模式識別與智慧型計算》二值化的夾角余弦距離法分類

2021-10-02 03:52:23 字數 1338 閱讀 6207

演算法流程

將樣本庫中的每個樣本進行二值化,閾值為(最大值-最小值)/2

利用夾角余弦距離法對待測樣品進行分類

演算法實現

def

erzhianglecos

(x_train,y_train,sample)

:"""

:function 按照二值夾角余弦距離法計算待測樣品與樣品庫中的相似度

:param x_train: 訓練集 m*n m為樣本個數 n為特徵個數

:param y_train: 訓練集標籤 1*m

:param sample: 待識別樣品

:return: 返回判斷類別

"""#二值化

spit =

0.5*

(np.

max(x_train)

- np.

min(x_train)

) train = np.where(x_train>spit,1,

0)sample = np.where(sample>spit,1,

0)#計算夾角余弦

erzhiang = np.

sum(train*sample)

/np.sqrt(np.

sum(train^2)

*np.

sum(sample^2)

)#值越大越相似

dismaxid = np.argmax(erzhiang)

label = y_train[dismaxid]

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

《模式識別與智慧型計算》夾角余弦距離分類

演算法流程 計算待測樣品與訓練集裡每個樣品x的角度距離 角度距離最大的就是所屬的樣品類別 演算法實現 計算夾角余弦 def anglecos x train,y train,sample function 按照夾角余弦距離法計算待測樣品與樣品庫中的相似度 param x train 訓練集 m n ...

《模式識別與智慧型計算》的資料集

這本書我老師說很好,讓我買來看看,結果一學期過去了,emmmm,不是我的問題,是這本書沒有資料,沒有源 強行甩鍋 咳咳,跑遠了,這本書的資料集我我到網上看到了,它的資料集格式是這樣的 allsamples有兩個字段,乙個為num,乙個feature,然後feature是乙個25 5維的資料,25表示...

模式識別與智慧型計算第一節(模式識別概述)

1 模式識別系統 資料獲取 用計算機語言 可計算數字符號 來表示研究物件 預處理 對研究物件去雜訊,復原等 特徵提取與選擇 對資料進行變換,降緯,簡化處理等 分類決策 歸類 分類器設計 對分類結果進行判斷檢測,誤差分析 2 模式識別主要問題 特徵選擇與優化 特徵選擇 使同類物體緊緻性 組合優化 對映...