SciPy - ward() 方法



SciPy ward() 方法是聚類演算法的一部分,它能最小化其控制範圍內簇的總方差。當你需要了解資料的結構和檢測自然分組時,它會特別有用。此分組可使用將資料視覺化的樹狀圖來執行。

此方法會根據類似的簇點來減少資料維度。

語法

以下是 SciPy ward() 方法的語法:

ward(distance_matrix)

引數

此方法只接受一個引數:

  • distance_matrix:此引數處理一個內建方法 pdist(),該方法會基於給定的資料陣列計算操作。

返回值

此方法返回鏈路矩陣 (res),顯示了層次聚類。

示例 1

以下是 SciPy ward() 方法,它對小型資料集執行層次聚類任務並使用樹狀圖顯示視覺化效果。

import numpy as np
from scipy.cluster.hierarchy import ward, dendrogram
import matplotlib.pyplot as plt
from scipy.spatial.distance import pdist

# Sample data
data = np.array([[10, 20], [30, 40], [50, 60], [70, 80]])

# the distance matrix
distance_matrix = pdist(data)

# hierarchical clustering using ward() method
res = ward(distance_matrix)

# Plot the dendrogram
plt.figure()
dendrogram(res)
plt.show()

輸出

以上程式碼產生以下結果:

scipy_ward_method_one

示例 2

在此示例中,我們使用鳶尾花資料集來操作使用 ward() 和 dendrogram() 的層次聚類任務。

import numpy as np
from scipy.cluster.hierarchy import ward, dendrogram
import matplotlib.pyplot as plt
from scipy.spatial.distance import pdist
from sklearn.datasets import load_iris

# Load Iris dataset
iris = load_iris()
data = iris.data

# the distance matrix
distance_matrix = pdist(data)

# calculate the hierarchical clustering using ward() method
res = ward(distance_matrix)

# plot the dendrogram
plt.figure(figsize=(6, 4))
dendrogram(res)
plt.show()

輸出

以上程式碼產生以下結果:

scipy_ward_method_two
scipy_reference.htm
廣告
© . All rights reserved.