聚類分析 最大最小距離法練習

2021-08-23 12:11:32 字數 1234 閱讀 6875

資料集:

0 00 1

4 44 5

5 45 5

1 0# 用最大最小距離法進行聚類分析

from fileutil import fileutil

from mathutil import mathutil

import math

x = fileutil.openfile('2-1.txt') # 資料

z = # 聚類中心

theta = 0.7

# 1.選個中心

x.remove(x[0])

# 2.選個離第乙個中心最遠的點做第二個聚類中心

index = 1

p = 0

for i in range(x.__len__()):

a = mathutil.ed(z[0], x[i])

if p < a:

p = a

index = i

x.remove(x[index])

# 3.計算剩餘各特徵向量到z_1,z_2的距離並求出最小值

d =

for i in range(x.__len__()):

a =

for j in range(z.__len__()):

# 4.看是否有其餘中心點

l = mathutil.ed(z[0], z[1])

f = 1

while f:

d =

for i in range(x.__len__()):

a =

for j in range(z.__len__()):

a = max(d)

if a > theta * l:

x.remove(x[i])

else:f = 0

#5.將剩餘點按最小距離原則分配

ans = #結果集

for i in range(z.__len__()):

for i in range(x.__len__()):

l = float('inf')

idx = 0

for j in range(z.__len__()):

b = mathutil.ed(z[j],x[i])

if b結果

第1類:

[[0, 0], [0, 1], [1, 0]]

第2類:

[[5, 5], [4, 4], [4, 5], [5, 4]]

2654 最小距離最大

題目描述 給出n個位置 數軸上的座標值 從中選出k個,讓這k個位置相鄰兩個之間的距離 相鄰位置座標的差值 盡可能的大 盡可能大的意思是這k 1個距離的最小值盡量大 輸出這個最大的最小值。樣例解釋 選位置 1 5 9。輸入 第一行 2個數n和k 2 n 100000,2 k 10000,k n 後面n...

2654 最小距離最大

問題 給出n個位置 數軸上的座標值 從中選出k個,讓這k個位置相鄰兩個之間的距離 相鄰位置座標的差值 盡可能的大 盡可能大的意思是這k 1個距離的最小值盡量大 輸出這個最大的最小值。樣例解釋 選位置 1 5 9。輸入 第一行 2個數n和k 2 n 100000,2 k 10000,k n 後面n行 ...

最大最小表示法

時間複雜度 o n 應用 比較兩個環形串是否是同一字串 判重 判同分異構等 判同分異構 都化為最小或最大 看有幾個不一樣的就好了。放到set裡。最小表示法是我在看插頭dp的時候看到的乙個名詞,就先來看了一下這個演算法,還是蠻簡單的,有乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字...