机器学习-1-k-means

本文详细介绍了如何使用Python和NumPy库实现K-means聚类算法,并通过一个具体的数据集进行测试,展示了从数据准备到算法应用及结果展示的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 进入命令行

pip3 install numpy

2. 测试k-means

from numpy import *
import operator
def createDataSet():
    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels = ['A','A','B','B']
    return group, labels
def classify0(inX, dataSet, labels, k):
    dataSetSize = dataSet.shape[0]
    diffMat = tile(inX, (dataSetSize,1)) - dataSet ##矩阵相减
    sqDiffMat = diffMat**2 ##差值平方
    sqDistances = sqDiffMat.sum(axis=1)
    sortedDistIndicies = sqDistances.argsort() ##对距离进行排序
    classCount={} ##新建字典,字典常用于排序
    for i in range(k): ##对字典进行排序,字典以labal作为key,数值为kmean的数值
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
        sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
        print("dictionary",sortedClassCount)
    return sortedClassCount[0][0]
group,labels=createDataSet()
result=classify0([0.5,0.5], group, labels, 3)
print(result) ##显示结果

3. 查看结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值