机器学习之最近邻算法

这篇博客介绍了使用Python 3.6版本实现机器学习中的最近邻算法,结合课程代码示例进行讲解,适合数据挖掘和分析初学者。
摘要由CSDN通过智能技术生成

机器学习之最近邻算法


小白,最近在学习Python的机器学习课程,最近邻算法,对应中国的古话:近朱者赤近墨者黑
举个例子,你想知道某个人A的职业,你可以通过他身边朋友的职业来猜测,比如他有n个朋友,一个做设计的铁哥们B,一个做房产中介的高中同学C,还有两个玩的比较好的是做码农的D和E。我们来量化一下几人的关系A B<AC<A D,AE<A~others
k近邻算法中的k值的选择,如果我们选k=2,k=3或者k=4时,得出1:1:1,选取最近的B,那么我们猜测A的职业为设计师,当我们选择k=5时,1:1:2,我们猜测A的职业为码农

图片: 在这里插入图片描述
下面是看的课程的代码示例,Python版本为3.6版本

import numpy as np
import operator
# inX 要检测的数据
# dataSet 数据集
# labels 结果集
# k 选择距离最小的K个点
def classify0(inX,dataSet,labels,k):
    # 计算矩阵的行数
    dataSetSize = dataSet.shape[0]
    # 第一个维度重复1次,第二个维度重复dataSetSize次
    diffMat = np.tile(inX,(dataSetSize,1))-dataSet
    sqDiffMat = diffMat**2
    sqDistances = sqDiffMat.sum(axis = 1)
    distances = sqDistances**0.5
    sortedDistIndicies = distances.argsort()
    # argsort()函数返回的是distances元素从小到大排列后相应元素的索引。如a=array([2,1,5,3]),a.argsort() 的结果为:[1,0,3,2]
    classCount = {
   }     # 分类标签字典  标签:标签出现次数
    for i in range(k):
        # 选出k个距离最近的数据
        voteILabel = labels[sortedDistIndicies[i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值