《模式識別與智慧型計算》基於類中心的歐式距離法分類

2021-10-02 02:50:10 字數 2227 閱讀 5355

基於類中心的歐式距離法分類

演算法過程:

1 選取某一樣本

2 計算類中心

3 計算樣本與每一類的類中心距離,這裡採用歐式距離

4 迴圈計算待測樣品和訓練集中各類中心距離找出距離待測樣品最近的類別

函式**

import numpy as np

import random

deftrain_test_split

(x,y,ratio =3)

:"""

:function: 對資料集劃分為訓練集、測試集

:param x: m*n維 m表示資料個數 n表示特徵個數

:param y: 標籤

:param ratio: 產生比例 train:test = 3:1(預設比例)

:return: x_train y_train x_test y_test

"""n_samples , n_train = x.shape[0]

,int

(x.shape[0]

*(ratio)/(

1+ratio)

) train_id = random.sample(

range(0

,n_samples)

,n_train)

x_train = x[train_id,:]

y_train = y[train_id]

x_test = np.delete(x,train_id,axis =0)

y_test = np.delete(y,train_id,axis =0)

return x_train,y_train,x_test,y_test

defeuclid

(x_train,y_train,sample)

:"""

:function: 基於類中心的模板匹配法

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

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

:param sample: 待識別樣品

:return: 返回判斷類別

"""dismin = np.inf

label =

0#去除標籤重複元素

target = np.unique(y_train)

for i in target:

#將同一類別的資料下標集中到一起

trainid =

([j for j,y in

enumerate

(y_train)

if y==i]

) train = x_train[trainid,:]

trainmean = np.mean(train, axis=0)

dis = np.dot(

(sample-trainmean)

,(sample - trainmean)

.t)if

(dismin>dis)

: dismin = dis

label = 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.euclid(x_train,y_train,sample)

y_test[testid]

print

("**的數字型別"

,ans)

print

("真實的數字型別"

,y_test[testid]

)

結果
**的數字型別 4

真實的數字型別 4

《模式識別與智慧型計算》基於類中心的歐式距離分類法

演算法流程 選取某一類樣本x 計算樣本類中心 採用歐式距離測度計算待測樣品到類中心的距離 距離最小的就是待測樣品的類別 演算法實現 計算距離 def euclid x train,y train,sample function 基於類中心的模板匹配法 param x train 訓練集 m n m為...

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

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

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

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