k-means聚类及可视化

本文主要是通过sklearn库实现k-means聚类并可视化

1.导入库

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.cluster import DBSCAN

2.读取数据并可视化

ori_data = pd.read_csv('D:/DL/机器学习/data.csv',header = None)

可视化

x = ori_data.iloc[:,0]
y = ori_data.iloc[:,1]
plt.scatter(x, y,s=4)
#二维坐标可视化
plt.show()

 

3.实现聚类并可视化

all_points = []
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k', 'b']
i = 0 
while i < len(x):
    point = [x[i],y[i]]
    all_points.append(point)
    i+=1
# 调用KMeans方法, 聚类数为4个,fit()之后开始聚类
kmeans = KMeans(n_clusters=4).fit(all_points)
plt.title('kmeans')
print('all_points_len: ',len(all_points))
print('k_label_len:',len(kmeans.labels_))
print(all_points[0][0],all_points[0][1])
for id, label in enumerate(kmeans.labels_):
    plt.scatter(all_points[id][0], all_points[id][1], color = colors[label],marker='o',s=4)
plt.show() 

### 文本层次聚类结果可视化的方法与工具 #### 使用Scikit-Learn和Matplotlib进行基本层次聚类可视化 为了实现文本数据的层次聚类及其结果可视化,通常会先利用`scipy.cluster.hierarchy`模块中的函数来执行层次聚类操作。之后可以通过matplotlib绘制树状图(dendhierarchy import dendrogram, linkage import matplotlib.pyplot as plt # 假设X是经过向量化后的文本特征矩阵 linked = linkage(X, 'single') # 单链接法构建层次聚类模型 plt.figure(figsize=(10, 7)) dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True) plt.show() ``` #### 利用Seaborn增强视觉效果 除了标准的matplotlib绘图外,还可以借助seaborn这样的统计图形库进一步美化图表外观,使得最终呈现出来的图像更加直观易懂[^3]。 ```python import seaborn as sns; sns.set_theme() g = sns.clustermap(df.corr(), cmap="vlag", method='ward') (g.ax_col_dendrogram.set_title('Text Hierarchical Clustering Visualization')) ``` #### 应用Topic Model进行文档主题聚类可视化 当涉及到大量非结构化文本时,可以采用topic modeling技术(如LDA),并通过特定于该领域的可视化手段——例如t-SNE降维配合散点图显示不同话题之间的分布情况;或者直接调用某些高级API完成更复杂的交互式可视化任务[^4]。 ```python from umap import UMAP import pandas as pd reducer = UMAP(n_neighbors=15, min_dist=0.1, metric='cosine') embedding = reducer.fit_transform(embeddings) df_vis = pd.DataFrame({'x': embedding[:, 0], 'y': embedding[:, 1]}) sns.scatterplot(data=df_vis, x='x', y='y', hue=y_labels) plt.title('Document Topic Clusters via t-SNE and UMAP') plt.show() ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要绝望总会慢慢变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值