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
    加油!
  • 相关阅读:
    TClientDataSet[6]: 读取 TClientDataSet 中的图片数据
    TClientDataSet[2]: Data、XMLData
    TClientDataSet[5]: 读取数据
    TClientDataSet[1]: 浏览测试数据
    TClientDataSet[3]: 手动建立数据集
    从哪查找当前程序所有可用的环境变量?
    使用多窗体时, 关于节约内存和加快启动速度的思考与尝试
    一句话获取文件的最新修改时间
    用 SuperObject 解析淘宝上的 Json 数据 回复 "macrolen" 的问题
    “生气”的经典解释
  • 原文地址:https://www.cnblogs.com/1994tj/p/11189511.html
Copyright © 2011-2022 走看看