哪個`scipy.cluster.vq`模組的函式用於將程式碼本中的程式碼分配給觀測值?


在實現k均值演算法之前,可以使用`scipy.cluster.vq.vq(obs, code_book, check_finite = True)`函式將程式碼本中的程式碼分配給每個觀測值。它首先將'M'乘以'N'的obs陣列中的每個觀測向量與程式碼本中的質心進行比較。比較完成後,它將程式碼分配給最接近的質心。它需要obs陣列中具有單位方差的特徵,我們可以透過將它們傳遞給`scipy.cluster.vq.whiten(obs, check_finite = True)`函式來實現。

引數

以下是函式`scipy.cluster.vq.vq(obs, code_book, check_finite = True)`的引數:

  • obs− ndarray

這是一個'M'乘以'N'的陣列,其中每一行是一個觀測值,列是在每次觀測中看到的特徵。示例如下:

obs = [[ 1., 1., 1.],
   [ 2., 2., 2.],
   [ 3., 3., 3.],
   [ 4., 4., 4.]]
  • code_book− ndarray

它也是一個'M'乘以'N'的陣列,通常使用k均值演算法生成,其中每一行包含一個不同的程式碼,列是該程式碼的特徵。

示例如下:

code_book = [
   [ 1., 2., 3., 4.],
   [ 1., 2., 3., 4.],
   [ 1., 2., 3., 4.]]
  • check_finite− bool,可選

此引數用於檢查輸入矩陣是否只包含有限數字。停用此引數可能會提高效能,但如果觀測值確實包含無限值,也可能導致一些問題,例如崩潰或不終止。此引數的預設值為**True**。

返回值

  • code− ndarray

它返回一個'M'陣列,其中包含每個觀測值的程式碼本索引。

  • dist− ndarray

它還返回距離(也稱為失真),即每個觀測值與其最近程式碼之間的距離。

示例

import numpy as np
from scipy.cluster.vq import vq
code_book = np.array([[1.,1.,1.],
   [2.,2.,2.]])
observations = np.array([[2.9, 1.3, 1.9],
   [1.7, 3.2, 1.1],
   [1.0, 0.2, 1.7,]])
vq(observations, code_book)

輸出

(array([1, 1, 0]), array([1.14455231, 1.52970585, 1.06301458]))

更新於:2021年11月24日

147 次檢視

啟動您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.