演算法流程
將樣本庫中的每個樣本進行二值化,閾值為(最大值-最小值)/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 模式識別主要問題 特徵選擇與優化 特徵選擇 使同類物體緊緻性 組合優化 對映...