高维聚类结果可视化
程序员文章站
2024-02-13 19:46:28
...
利用sklearn包里的BIRCH算法,以iris数据集,聚类结果可视化
代码如下
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets.samples_generator import make_blobs
from sklearn.cluster import Birch
import urllib.request
import sys
from sklearn.manifold import TSNE
import pandas as pd
# import ybirch
with open("F:\Tabtad\Downloads\iris\Iris.txt", 'r') as f:#打开数据文件
line = f.readlines()
# data = urllib.request .urlopen(target_url),encoding = 'utf-8'
xList = []
# labels = []
for data in line:
# line = line.decode()
row = data.strip().split(",")#切词,并将数据变成浮点形式
row = list(map(float,row))
# labels.append(row[0])
del row[0]
xList.append(row)
X = np.array(xList)#转为numpy的矩阵形式
print(xList)
print(X)
#未使用Birch之前的数据情况
plt.scatter(X[:,0], X[:,1],X[:,2], marker = 'o')
plt.show()
# print(labels)
nrow = len(xList)
ncol = len(xList[0])
print ("Number of Rows of Data = " + str(len(xList)) + '\n')
sys.stdout.write("Number of Columns of Data = " + str(len(xList[1])) + '\n')
#y = make_blobs(n_samples=150, n_features=4, cluster_std=[0.4, 0.3, 0.4, 0.3])
# #
#设置birch函数,训练函数
model = Birch(n_clusters = 3,threshold = 0.4)
y_pred = model.fit_predict(X)
#
print(y_pred)
# 输出标签下样本数目
r1 = pd.Series(model.labels_).value_counts()
print(r1)#统计各个类别的数目
# 绘图
plt.scatter(X[:,0], X[:,1],X[:,2], c= y_pred)
plt.show()
from sklearn import metrics
print("Calinski_Harabasz Score",metrics.calinski_harabasz_score(X,y_pred))
# # help(Birch)
# # print(len(y_pred))
上一篇: 动态路由协议-RIP
下一篇: OSPF特殊区域中的默认路由下发规则
推荐阅读
-
高维聚类结果可视化
-
Python3: Kmeans聚类模型的实现方法及可视化
-
Python实现简单的层次聚类算法以及可视化
-
三、(3)PCA降3维下的K-means聚类可视化
-
Python实现简单层次聚类算法以及可视化
-
Matlab实现Kmeans聚类,并利用匈牙利算法Kuhn-Munkres实现对聚类标签和真实标签的映射,对结果进行聚类精度Accuracy评价和标准互信息Nmi评价
-
Python获取sklearn库中iris数据写入本地csv文件,可视化展示数据并进行分类、聚类实验以及结果可视化
-
python手写K-means实现二维聚类
-
RDKit | 可视化官能团, 分子聚类, 相似图, 化合物高亮和骨架网络
-
kmeans目标框聚类方法整理与实现(附散点密度图可视化)