網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
無(wú)監(jiān)督
無(wú)監(jiān)督聚類這里使用了Kmeans的聚類方式,適用于凸數(shù)據(jù)集,當(dāng)然如果有更好的聚類方式也可以替換的。
輸入一系列數(shù)據(jù),輸出的就是這一系列數(shù)據(jù)的標(biāo)簽。
看代碼
# 導(dǎo)入包
import numpy as np
from sklearn.cluster import KMeans
from yellowbrick.cluster.elbow import kelbow_visualizer
import matplotlib.pyplot as plt
from sklearn import manifold
# 無(wú)監(jiān)督聚類出具labels
def y_knn(X):
data_X = np.array(X)
# 變形狀
if len(data_X.shape) == 1:
data_X = data_X.reshape(-1, 1)
# 找出最合適的K
oz = kelbow_visualizer(KMeans(random_state=1, n_init='auto'), data_X, k=(2,20))
k = oz.elbow_value_
# 再進(jìn)行KMeans聚類
kmeans = KMeans(n_clusters=k, random_state=1, n_init='auto')
kmeans.fit(data_X)
# 獲取每個(gè)點(diǎn)的類別信息
labels = kmeans.predict(data_X)
return labels
# 原始數(shù)據(jù)如果是一維的這樣畫(huà)
def draw1w(X, labels):
X = np.array(X)
min_arr = []
max_arr = []
for l in range(len(set(labels))):
x = X.reshape(-1)[np.where(labels==l)]
z_min = min(x)
z_max = max(x)
print(z_min, z_max)
min_arr.append(z_min)
max_arr.append(z_max)
print(sorted(min_arr), sorted(max_arr))
li_arr = [sorted(min_arr)[0]] + sorted(max_arr)
print(li_arr)
# L_ARR[i] = li_arr
# 獲取簇中心
# centers = kmeans.cluster_centers_
# print(labels, centers)
plt.figure(figsize=(8, 1))
for i_x in li_arr:
# 畫(huà)兩條虛線
plt.plot([i_x, i_x], [-0.1, 0.1], c='b', linestyle='--')
# 可視化聚類結(jié)果和分界線
plt.scatter(X.reshape(-1, 1)[:, 0], [0]*len(X.reshape(-1, 1)[:, 0]), c=labels, cmap="viridis")
plt.colorbar()
plt.show()
# 原始數(shù)據(jù)是多維度的,這樣畫(huà)
def draw2w(X, labels):
# 將數(shù)據(jù)降維,降維出來(lái)就是X_tsne
tSNE = manifold.TSNE(n_components=2, init='pca', random_state=0)
X_tsne = tSNE.fit_transform(X)
# 畫(huà)一下
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=labels, cmap="viridis")
plt.colorbar()
plt.show()
看效果
一維數(shù)據(jù)
X = np.random.random(100)
labels = y_knn(X)
draw1w(X, labels)
多維數(shù)據(jù)
X = np.random.random((100, 5))
labels = y_knn(X)
draw2w(X, labels)
原文鏈接:https://blog.csdn.net/u010095372/article/details/131469934
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-11-08 hooks中useEffect()使用案例詳解_React
- 2022-04-09 MFC模擬實(shí)現(xiàn)自定義消息發(fā)送_C 語(yǔ)言
- 2022-11-22 Android?10?啟動(dòng)分析之init語(yǔ)法詳解_Android
- 2022-05-26 Redis?操作多個(gè)數(shù)據(jù)庫(kù)的配置的方法實(shí)現(xiàn)_Redis
- 2022-04-12 Python?設(shè)計(jì)模式行為型訪問(wèn)者模式_python
- 2022-05-25 C#多線程實(shí)現(xiàn)異步接口_C#教程
- 2022-11-23 淺析Golang切片截取功能與C++的vector區(qū)別_Golang
- 2022-11-11 react中代碼塊輸出,代碼高亮顯示,帶行號(hào),能復(fù)制的問(wèn)題_React
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支