数据集下载 adaptiveBoosting算法_步步清风皆是你的博客-CSDN博客
pip install scikit-learn-extra
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
from sklearn_extra.cluster import KMedoids
from sklearn.datasets import make_blobs
# https://scikit-learn-extra.readthedocs.io/en/stable/index.html
'''
KMedoids KMeans
# 聚类算法
ModuleNotFoundError: No module named 'sklearn_extra'
pip install scikit-learn-extra
'''
import matplotlib.pyplot as plt
# 聚类算法
f = open("../Dataset/ClusterData.text", "r")
lines = f.readlines()
data = []
label = []
for line in lines:
x, y = map(float, line.split())
data.append((x, y))
# model = KMeans(n_clusters=3, random_state=0)
model = KMedoids(n_clusters=3, random_state=0)
model.fit(data)
# label = model.predict(data, sample_weight=None)
label = model.predict(data)
c = dict(zip(data, label))
'''
zip() 函数用于将可迭代的对象作为参数,
将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
可以将包转化为列表,查看包中的内容
'''
for data in c:
if c[data] == 0:
plt.scatter(data[0], data[1], c='red', label='类别1')
elif c[data] == 1:
plt.scatter(data[0], data[1], c='blue', label='类别2')
elif c[data] == 2:
plt.scatter(data[0], data[1], c='yellow', label='类别3')
plt.show()