亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python實現(xiàn)3D聚類圖示例代碼

 更新時間:2024年08月20日 10:47:06   作者:兜里沒有一毛錢  
這篇文章主要介紹了使用python實現(xiàn)3D聚類圖效果,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

實驗記錄,在做XX得分預測的實驗中,做了一個基于Python的3D聚類圖,水平有限,僅供參考。

一、以實現(xiàn)三個類別聚類為例

代碼:

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.impute import SimpleImputer
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 讀取數(shù)據(jù)
data = pd.read_csv('E:\\shujuji\\Goods\\man.csv')
# 選擇用于聚類的列
features = ['Weight', 'BMI', 'Lung Capacity Score', '50m Running Score',   
            'Standing Long Jump Score', 'Sitting Forward Bend Score',   
            '1000m Running Score', 'Pulling Up Score', 'Total Score']
X = data[features]
# 處理缺失值
imputer = SimpleImputer(strategy='mean')
X_imputed = imputer.fit_transform(X)
# 數(shù)據(jù)標準化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_imputed)
# 應用PCA降維到3維
pca = PCA(n_components=3)
X_pca = pca.fit_transform(X_scaled)
# 執(zhí)行K-means聚類
# 假設我們想要3個聚類
kmeans = KMeans(n_clusters=9, random_state=0).fit(X_pca)
labels = kmeans.labels_
# 將聚類標簽添加到原始DataFrame中
data['Cluster'] = labels
# 3D可視化聚類結果
fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
unique_labels = set(labels)
colors = ['r', 'g', 'b']
for k, c in zip(unique_labels, colors):
    class_member_mask = (labels == k)
    xy = X_pca[class_member_mask]
    ax.scatter(xy[:, 0], xy[:, 1], xy[:, 2], c=c, label=f'Cluster {k}')
ax.set_title('PCA of Fitness Data with K-means Clustering')
ax.set_xlabel('Principal Component 1')
ax.set_ylabel('Principal Component 2')
ax.set_zlabel('Principal Component 3')
plt.legend()
plt.show()
# 打印每個聚類的名稱和對應的數(shù)據(jù)點數(shù)量
cluster_centers = kmeans.cluster_centers_
for i in range(3):
    cluster_data = data[data['Cluster'] == i]
    print(f"Cluster {i}: Count: {len(cluster_data)}")
# 評估聚類效果
from sklearn import metrics
print("Silhouette Coefficient: %0.3f" % metrics.silhouette_score(X_pca, labels))

實現(xiàn)效果:

二、實現(xiàn)3個聚類以上,以9個類別聚類為例

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.impute import SimpleImputer
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 讀取數(shù)據(jù)
data = pd.read_csv('E:\\shujuji\\Goods\\man.csv')
# 選擇用于聚類的列
features = ['Weight', 'BMI', 'Lung Capacity Score', '50m Running Score',   
            'Standing Long Jump Score', 'Sitting Forward Bend Score',   
            '1000m Running Score', 'Pulling Up Score', 'Total Score']
X = data[features]
# 處理缺失值
imputer = SimpleImputer(strategy='mean')
X_imputed = imputer.fit_transform(X)
# 數(shù)據(jù)標準化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_imputed)
# 應用PCA降維到3維
pca = PCA(n_components=3)
X_pca = pca.fit_transform(X_scaled)
# 執(zhí)行K-means聚類
# 假設我們想要9個聚類
kmeans = KMeans(n_clusters=9, random_state=0).fit(X_pca)
labels = kmeans.labels_
# 將聚類標簽添加到原始DataFrame中
data['Cluster'] = labels
# 3D可視化聚類結果
fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
unique_labels = set(labels)
colors = ['r', 'g', 'b', 'c', 'm', 'y', 'k', 'orange', 'purple']
for k, c in zip(unique_labels, colors):
    class_member_mask = (labels == k)
    xy = X_pca[class_member_mask]
    ax.scatter(xy[:, 0], xy[:, 1], xy[:, 2], c=c, label=f'Cluster {k}')
ax.set_title('PCA of Fitness Data with K-means Clustering')
ax.set_xlabel('Principal Component 1')
ax.set_ylabel('Principal Component 2')
ax.set_zlabel('Principal Component 3')
plt.legend()
plt.show()
# 打印每個聚類的名稱和對應的數(shù)據(jù)點數(shù)量
cluster_centers = kmeans.cluster_centers_
for i in range(9):
    cluster_data = data[data['Cluster'] == i]
    print(f"Cluster {i}: Count: {len(cluster_data)}")
# 評估聚類效果
from sklearn import metrics
print("Silhouette Coefficient: %0.3f" % metrics.silhouette_score(X_pca, labels))

實現(xiàn)效果;

到此這篇關于使用python實現(xiàn)3D聚類圖的文章就介紹到這了,更多相關python 3D聚類圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論