Python kNN算法简单记录

最近看了机器学习实战这本书,第一个机器算法就是kNN,理论看起来很简单,但实现起来还需要一定的pthon基本功

第一步:就需要自己创造一个假数据,最好是浮点的:

               一个是:selfData = np.random.uniform(1,9) #这个是弄一个浮点随机数出来,后面可以用for循环获得你要的矩阵

                二是:np.random.random(a)*x #这个是一次性获得0-1之间的小数,在乘以x,扩大

第二步才是分类

打字好麻烦,直接发图片




如图

import numpy as np

import matplotlib.pyplot as plt

import random

import math

from collections import Counter

def creatData():

    np.random.seed()

    y = [ random.uniform(1,9) for i in range(20)]

    x = [0,0,0,0,0,1,1,1,1,1]

    copx = np.array(x)

    copy = np.array(y).reshape(10,2)

    return copx,copy

def classifier(k,copx,copy,x1):

    distances = np.sqrt(np.sum((copy-x1)**2,axis = 1))

    index = np.argsort(distances)

    nestIndex = [copx[i] for i in index[:k]]

    votex  = Counter(nestIndex)

    result = votex.most_common(1)[0][0]

    return result

if __name__ == '__main__':

    copx,copy  = creatData()


    x1 = ([5,5])

    k = 3

    resultA = classifier(k,copx,copy,x1)

    print(resultA)

    plt.scatter(copy[copx == 0,0],copy[copx == 0,1],color = 'r')

    plt.scatter(copy[copx == 1,0],copy[copx == 1,1],color = 'b')

    plt.scatter(x1[0],x1[1],color = 'g')

    plt.show()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容