zoukankan      html  css  js  c++  java
  • 一天一个算法·笔记

    kNN__---只为自己记录

    # !/usr/bin/python
    # -*- coding: UTF-8 -*-
    #创建数据集
    a = 
    [
        {
            "电影名称": "man",
            "打斗镜头": 3,
            "接吻镜头": 104,
            "电影类型": "爱情片"
        },
    {
            "电影名称": "He's Not Really into Dudes",
            "打斗镜头": 2,
            "接吻镜头": 100,
            "电影类型": "爱情片"
        },
    {
            "电影名称": "Amped II",
            "打斗镜头": 98,
            "接吻镜头": 2,
            "电影类型": "动作片"
        },
    {
            "电影名称": "Robo Slayer 3000",
            "打斗镜头": 99,
            "接吻镜头": 5,
            "电影类型": "爱情片"
        },
    ]
    
    b = [1, 5, 8, 10, 66, 9]
    
    
    def quick_sort(quick_list):
        if len(quick_list) < 2:
            return quick_list
        mid = quick_list[len(quick_list)//2]
        left_list = []
        right_list = []
        quick_list.remove(mid)
        for i in quick_list:
            if mid >= i:
                left_list.append(i)
            else:
                right_list.append(i)
        return quick_sort(left_list) + [mid] + quick_sort(right_list)
    
    print(quick_sort(b))
    
    from numpy import *
    import operator
    
    
    
    def creatDataSet():
        group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
        labels = ["A","A","B","B"]
        return group,labels
    
    group,labels = creatDataSet()
    
    def classify0(inX, dataset, labels, k):
        datasetSize = dataset.shape[0]
        diffMat = tile(inX, (datasetSize, 1)) - dataset
        sqDiffMat = diffMat ** 2
        print(sqDiffMat)
        sqDistances = sqDiffMat.sum(axis=1)
        print(sqDistances)
        distances = sqDistances ** 0.5
        print(distances)
        sortedDistIndicies = distances.argsort()
    
        classCount = {}
        for i in range(k):
            voteIlabel = labels[sortedDistIndicies[i]]
            classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
        sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1),reverse=True)
        print(sortedClassCount)
        return sortedClassCount[0][0]
    
    print(classify0([0,0],group,labels,3))
    

    kNN算法基础使用

  • 相关阅读:
    webpack4 plugins 篇
    webpack4 打包静态资源
    babel 7 简单指北
    JS: 深拷贝
    JS: 数组的循环函数
    async await 的执行
    redux
    TCP通信
    理解Javascript的原型和原型链
    「译」forEach循环中你不知道的3件事
  • 原文地址:https://www.cnblogs.com/zhuPython/p/13295097.html
Copyright © 2011-2022 走看看