zoukankan      html  css  js  c++  java
  • 我想去做机器学习 接下来发一些机器学习实战的算法

    kNN算法  K近邻  简单说就是找出最近的K个点然后找出他们的分类最多的就是本身

    from numpy import *  #导入包numpy
    import operator      #运算符
    def createDataSet():   #这个是生成一开始的点以及他们的类型 也可以叫做参照
        group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]);
        labels=['A','A','B','B'];
        return group,labels;
    
    def classify(inX,dataSet,labels,k):  #kNN  输入向量  数据集 数据集对应的类型 K个
        dataSetSize=dataSet.shape[0];    #算出来有几个点
        diffMat=tile(inX,(dataSetSize,1))-dataSet; #用输入的点填满 然后去减掉数据集对应的位子
        sqDiffMat=diffMat**2;                      #平方
        sqDistances=sqDiffMat.sum(axis=1);         #把每一行加起来
        distances=sqDistances**0.5;                #对每一个结果开根号
        sortedDisIndicies=distances.argsort();     #排序 返回他们的下标
        classCount={};                             #map存类型和数目
        for i in range(k):
            voteIlabel=labels[sortedDisIndicies[i]];
            classCount[voteIlabel]=classCount.get(voteIlabel,0)+1;  #数目增加
        sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True) #对数目排序 降序
        return sortedClassCount[0][0];   #返回值
    View Code
  • 相关阅读:
    蜘蛛禁止访问文件
    基于PhalApi的Smarty拓展 (视图层的应用)
    MySQL数据库存表情
    查看PHP版本等相关信息
    读取数据库表信息
    nginx简介
    Redis发布订阅
    Redis持久化
    Redis主从复制
    Redis的Java客户端Jedis
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/8516692.html
Copyright © 2011-2022 走看看