第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

不使用閾值對(duì)值數(shù)組進(jìn)行聚類

不使用閾值對(duì)值數(shù)組進(jìn)行聚類

小怪獸愛(ài)吃肉 2023-07-11 10:39:58
我想將每個(gè)值代表一個(gè)錯(cuò)誤的一維數(shù)據(jù)集分成 2 段:具有最小值的簇所有其他人例子:X = np.array([1, 1.5, 0.4, 1.1, 23, 24, 22.5, 21, 20, 25, 40, 50, 50, 51, 52, 53]).reshape(-1, 1)在這個(gè)小示例中,我想將集群中的前 4 個(gè)值重新分組,而忽略其他值。我不想要基于閾值的解決方案。關(guān)鍵是興趣簇質(zhì)心并不總是具有相同的值??赡苁?e-6,也可能是1e-3,也可能是1。我的想法是使用 k 均值聚類算法,如果我確實(shí)知道數(shù)據(jù)中存在多少個(gè)聚類,該算法就會(huì)很好地工作。在上面的例子中,數(shù)字是 3,一個(gè)大約 1(感興趣的簇),一個(gè)大約 22,一個(gè)大約 51。但遺憾的是,我不知道簇的數(shù)量......簡(jiǎn)單地搜索 2 個(gè)簇是不會(huì)的導(dǎo)致數(shù)據(jù)集按預(yù)期分割。kmeans = KMeans(n_clusters=2, random_state=0).fit(X) kmeans.labels_返回一個(gè)太大的簇 1,其中還包括以 22 為中心的簇的數(shù)據(jù)。array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0])我確實(shí)找到了一些關(guān)于選擇 k 的方法的有趣答案,但它使算法變得復(fù)雜,我覺(jué)得必須有更好的方法來(lái)解決這個(gè)問(wèn)題。我愿意接受任何可以在X所提供的數(shù)組上工作的建議和示例。
查看完整描述

1 回答

?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可能會(huì)發(fā)現(xiàn)AffinityPropagation這里很有用,因?yàn)樗恍枰付ㄒ傻拇氐臄?shù)量。然而,您可能需要調(diào)整 和damping factor,preference以便它產(chǎn)生預(yù)期的結(jié)果。

在提供的示例中,默認(rèn)參數(shù)似乎可以完成這項(xiàng)工作:

from sklearn.cluster import AffinityPropagation


X = np.array([1, 1.5, 0.4, 1.1, 23, 24, 22.5,?

? ? ? ? ? ? ? 21, 20, 25, 40, 50, 50, 51, 52, 53]).reshape(-1, 1)

ap = AffinityPropagation(random_state=12).fit(X)

y = ap.predict(X)

print(y)

# array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], dtype=int64)

要從 獲取各個(gè)簇X,您可以使用以下方法建立索引y:


first_cluster = X[y==0].ravel()

first_cluster

# array([1. , 1.5, 0.4, 1.1])

second_cluster = X[y==1].ravel()

second_cluster

# array([23. , 24. , 22.5, 21. , 20. , 25. ])


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)