• 机器学习笔记——k-近邻算法(一)简单代码


    import numpy as np
    ##初始化数据
    T = [[3, 104, -1],
        [2, 100, -1],
        [1, 81, -1],
        [101, 10, 1],
        [99, 5, 1],
        [98, 2, 1]]
    ##初始化待测样本
    x = [18, 90]
    ##初始化邻居数
    K = 5
    
    ##初始化存储距离列表[[距离1,标签1],[距离2,标签2]....]
    dis=[]
    
    ##循环每一个数据点,把计算结果放入dis
    for i in T:
        d = ((x[0]-i[0])**2+(x[1]-i[1])**2)**0.5
        dis.append([d,i[-1]])
    ##对dis按照距离排序
    dis.sort()
    ##将前K个票放入投票箱
    np.sign(sum([i[-1] for i in dis[:K]]))
    
        二
    #带权投票
    import numpy as np
    
    ##初始化数据
    T = [[3, 104, -1],
        [2, 100, -1],
        [1, 81, -1],
        [101, 10, 1],
        [99, 5, 1],
        [98, 2, 1]]
    ##初始化待测样本
    x = [18, 90]
    ##初始化邻居数
    K = 5
    
    ##初始化存储距离列表[[距离1,标签1],[距离2,标签2]....]
    dis=[]
    
    ##循环每一个数据点,把计算结果放入dis
    for i in T:
        d = ((x[0]-i[0])**2+(x[1]-i[1])**2)**0.5
        dis.append([d,i[-1]])
    ##对dis按照距离排序
    dis.sort()
    ##将前K个票放入投票箱
    np.sign(sum([i[-1]/i[0] for i in dis[:K]]))
    
             三
    import numpy as np
    
    ##初始化数据
    T = [[3, 104, 98],
        [2, 100, 93],
        [1, 81, 95],
        [101, 10, 16],
        [99, 5, 8],
        [98, 2, 7]]
    ##初始化待测样本
    x = [18, 90]
    ##初始化邻居数
    K = 5
    
    ##初始化存储距离列表[[距离1,标签1],[距离2,标签2]....]
    dis=[]
    
    ##循环每一个数据点,把计算结果放入dis
    for i in T:
        d = ((x[0]-i[0])**2+(x[1]-i[1])**2)**0.5
        dis.append([d,i[-1]])
    ##对dis按照距离排序
    dis.sort()
    ##将前K个票放入投票箱
    np.mean([i[-1] for i in dis[:K]])
    
          四
    #带权回归
    import numpy as np
    
    ##初始化数据
    T = [[3, 104, 98],
        [2, 100, 93],
        [1, 81, 95],
        [101, 10, 16],
        [99, 5, 8],
        [98, 2, 7]]
    ##初始化待测样本
    x = [18, 90]
    ##初始化邻居数
    K = 5
    
    ##初始化存储距离列表[[距离1,标签1],[距离2,标签2]....]
    dis=[]
    
    ##循环每一个数据点,把计算结果放入dis
    for i in T:
        d = ((x[0]-i[0])**2+(x[1]-i[1])**2)**0.5
        dis.append([d,i[-1]])
    ##对dis按照距离排序
    dis.sort()
    ##将前K个票放入投票箱
    fenzi = sum([i[-1]/i[0] for i in dis[:K]])
    fenmu = sum([1/i[0] for i in dis[:K]])
    fenzi/fenmu
    加油!
  • 相关阅读:
    deb包的2种安装安装方法
    苹果全系产品信息查询
    水货的运作流程
    关于手机字库损坏的真相
    关闭IOS更新功能(ios4/5/6)
    c++ builder xe2 字符串转日期
    《windows核心编程》 18章 堆
    《windows核心编程》 17章 内存映射文件
    使用内存映射文件来共享数据
    <转>C++位运算详解
  • 原文地址:https://www.cnblogs.com/1994tj/p/11189511.html
Copyright © 2020-2023  润新知