zoukankan      html  css  js  c++  java
  • 机器学习笔记——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
    加油!
  • 相关阅读:
    dnn
    DATAGRID学习
    在.net下的换行符
    treeview
    《25项最优时间管理工具与技巧》
    vim常用操作
    【Google给毕业生的忠告】
    MySQL的安装、使用及权限管理
    各种国际化标准组织
    ubuntu thunderbird 邮箱 163 配置 不能发送问题
  • 原文地址:https://www.cnblogs.com/1994tj/p/11189511.html
Copyright © 2011-2022 走看看