精华内容
下载资源
问答
  • 具体解决方案是,将待聚类的向量数据集转化为k最近邻网络,并用SSNCA对该网络进行聚类.将SSNCA与c-Means、仿射传播进行比较,实验表明文中算法得到的目标函数稍差,但聚类精度要明显高于这两个算法.
  • 基于改进的k-最近邻网络的癫痫脑电信号分析
  • 一 目标:在不调用除了numpy之外的高级库的情况下使用KNN最近邻算法实现对句子的分类和回归 二 算法原理  最简单最初级的分类器是将全部训练数据的类别都记录下来,如果测试对象的属性和某个训练对象的属性完全...

    一 目标:在不调用除了numpy之外的高级库的情况下使用KNN最近邻算法实现对句子的分类和回归

    二 算法原理

           最简单最初级的分类器是将全部训练数据的类别都记录下来,如果测试对象的属性和某个训练对象的属性完全匹配,就可以进行分类。显然,绝大部分测试对象都不会有完全匹配的训练对象,所以就产生了KNN

           KNN是通过不同样本在特征空间中的距离进行分类。其思路是:如果一个样本在特征空间中存在k个距离最近的训练对象,则在这k个对象的分类结果中取众数作为分类器的结果;如果要实现的是回归预测,那么就用各个样本的结果除以距离(或者其他某种与距离反相关的方法)再求和

    三 实验数据

    1、 训练集:作为样本用于与测试对象进行匹配

    2、 验证集:用于寻找合适的度量空间 ,比如欧氏距离、曼哈顿距离、余弦距离等

    3、 测试集:用于测试结果

    四 文本处理:使用TF-IDF(参考博客:https://blog.csdn.net/mlp750303040/article/details/79160299

    五 部分关键代码(以回归为例)

    def findNearest(k, expon, train_mat, vec):
        tmp = []
        for index in range(train_mat.shape[0]):
            dis = getDis(expon, vec, train_mat[index])
            tmp.append((dis, index))
        tmp.sort()
        return tmp[0:k]
    
    def calculator(k, l, train_emo, emo, i):
        for index in range(k):
            for Index in range(6):
                emo[i][Index] += train_emo[l[index][1]][Index] / l[index][0]
        # 归一化
        s = emo[i].sum()
        for index in range(6):
            emo[i][index] = emo[i][index] / s
    
    def getPredict(k, expon, train_mat, train_emo, valid_mat, valid_emo):
        l = []
        for i in range(valid_mat.shape[0]):
            l = findNearest(k, expon, train_mat, valid_mat[i])
            if l[0][0] == 0:
                valid_emo[i] = train_emo[l[0][1]]
            else:
                 calculator(k, l, train_emo, valid_emo, i)

    附:数据集下载地址:https://download.csdn.net/download/n_young/10683293

    展开全文
  • MATLAB源码集锦-复杂网络最近邻耦合网络程序
  • hdidx, 高维数据的近似最近邻( 神经网络) 搜索 HDIdx: 索引高维度数据 什么是 HDIdx?HDIdx 是一个 python 包,用于近似最近邻( 神经网络) 搜索。 最近邻( NN ) 搜索在高维空间中是非常困难的,因为维度维度的灾难性...
  • 基于K最近邻分类的无线传感器网络定位算法
  • 针对网络空间中有范围约束、不确定对象的最近邻查询问题,提出范围受限的网络空间模糊对象最近邻查询概念,并根据查询顺序的不同,给出NN-R查询算法和R-NN查询算法。两种算法均采用网络位置信息与连接信息分别存储的...
  • 最近邻分割(NNP)方法是一种高性能方法,用于改进传统的神经网络分类器。 但是,NNP模型的构建过程非常耗时,特别是对于大型数据集,因此限制了其应用范围。 本研究提出了一种基于计算统一设备体系结构(CUDA)的...
  • 近似最近邻搜索算法

    2021-04-22 15:20:40
    是通过贪心算法遍历图,找出当前数据集中的最近邻点(局部最小值),以此作为插入并构建生成层状网络图,通过在下一层中不断寻找最近邻点插入构建,从而完成对特征向量集的维度分层、数据压缩、索引生成。...

    定义:

    采用分而治之思想,将原始数据通过映射方法划分到不同的向量空间,针对大规模的搜索任务,通过映射函数在向量相似的空间进行遍历查询。

    常用的几种算法:

    基于图的索引量化法:HNSW
    基于树:Annoy
    基于哈希:SLH

    HNSW(Hierarchical Navigable Small World)

    是通过贪心算法遍历图,找出当前数据集中的最近邻点(局部最小值),以此作为插入并构建生成层状网络图,通过在下一层中不断寻找最近邻点插入构建,从而完成对特征向量集的维度分层、数据压缩、索引生成。检索时,采用自上而下的搜索方式,即从最顶层开始粗略搜索,然后逐步向下层搜索,直到最底层精确搜索。
    在这里插入图片描述
    根据Benchmark上的ANN算法的测试,HNSW算法在查询速度和精度上优于其他算法,但是占用内存大。
    在这里插入图片描述

    HNSW代码

    import hnswlib
    import time
    import os
    import psutil
    def get_ann(length,dimen):
        start_time = time.time()
        pid = os.getpid()
        pp = psutil.Process(pid)
        info_start = pp.memory_full_info().uss/1024/1024
        #向量维度
        dim = dimen
        num_elements = length
        data = X
        data_labels = np.arange(num_elements)
        # 声明索引
        p = hnswlib.Index(space = 'l2', dim = dim) # hnswlib支持的距离有L2距离,向量内积以及cosine相似度
        # 初始化index
        p.init_index(max_elements = num_elements, ef_construction = 100, M = 16)
        # ef: 动态检索链表的大小。ef必须设置的比检索最近邻的个数K大。ef取值范围为k到集合大小之间的任意值。
        p.set_ef(50) 
        p.set_num_threads(4)#cpu多线程并行计算时所占用的线程数
        
        #构建items
        p.add_items(X, data_labels)
        index_path = 'data.bin'
        p.save_index(index_path)
        global labels, distances
        labels, distances = p.knn_query(data, k = 10)
        
        info_end=pp.memory_full_info().uss/1024/1024
        print('用时:%.2f s' % (time.time()-start_time))
        print('运行占内存'+str(info_end-info_start)+'MB')
    get_ann(X.shape[0],X.shape[1])  

    Annoy

    基本思路:
    给定一个查询向量,在一个庞大的向量集合中,找到与查询向量最相似的k个目标向量。工作原理:采用随机投影树,对所有的数据进行划分,将每次搜索与计算的点的数目减小到一个可接受的范围,然后建立多个随机投影树构成随机投影森林,将森林的综合结果作为最终结果。
    如何构建随机森林:
    随机选取一个向量,该向量经过原点,垂直于该向量的直线将平面内的点划分为两个部分,这两个部分的点分别划分给左子树和右子树。用数学语言是说,计算各个点与垂直向量的点积,若点积大于零的点划分到左子树,点积小于零的点划分到右子树。
    优点:
    索引小、内存占用小

    Annoy代码

    from annoy import AnnoyIndex
    import time
    import os
    import psutil
    # from guppy3 import hpy
    def get_nn(length,dimen):
        start_time = time.time()#开始时间
        pid = os.getpid()
        p = psutil.Process(pid)
    #     根据pid找到进程,进而找到占用的内存值
        info_start = p.memory_full_info().uss/1024/1024
        
        f = dimen#X的维度
        t = AnnoyIndex(f,'angular')#返回可读写的新索引,用于存储f维度向量
        for i in range(length):
            v = X[i]
            t.add_item(i,v)#构建 n_trees 的森林。查询时,树越多,精度越高。在调用build后,无法再添加任何向量。
        t.build(10)
        t.save('ann.ann')#将索引保存
        u = AnnoyIndex(f,'angular')
        u.load('ann.ann')
        global nn_list
        nn_list = []
        for i in range(length):
            nn_list.append(u.get_nns_by_item(i,10))#返回第i 个item的n个最近邻的item
            
     
        info_end=p.memory_full_info().uss/1024/1024
        print('用时:%s秒' % (time.time()-start_time))
        print('运行占内存'+str(info_end-info_start)+'MB')
        
        return nn_list
        
    get_nn(len(X),X.shape[1])
    展开全文
  • 还有其他几个最近邻 SWM 程序,但其中许多需要更多的内存才能运行,并且不适用于大型数据集。 该文件应该适用于大型数据集(已在 >100,000 obs 上进行测试)。 此外,重量有多种选择。 用户可以为每个邻居选择相等的...
  • 以下是最常用的预测数值的算法的介绍:线性回归,决策树,神经网络和K最近邻 线性回归 线性回归尝试将直的超平面拟合到最接近所有数据点的数据集中。当数据集中的变量之间存在线性关系时,这是最合适的。 优点: ...

    回归技术

    回归算法是用于预测连续数值的机器学习技术。他们是有监督的学习任务,这意味着他们需要标记的训练示例。

    案例:

    • 根据尺寸,品牌和位置预测产品的适当价格
    • 根据商店位置,公共假日,星期几和最接近的竞争对手来预测每天的销售数量

    以下是最常用的预测数值的算法的介绍:线性回归,决策树,神经网络和K最近邻

    线性回归

    线性回归尝试将直的超平面拟合到最接近所有数据点的数据集中。当数据集中的变量之间存在线性关系时,这是最合适的。

    优点:

    • 快速计算,并可以轻松地使用新数据进行更新
    • 相对容易理解和解释

    可以使用正则化技术来防止过度拟合

    缺点:

    • 无法学习复杂的关系
    • 难以捕获非线性关系(没有可能很复杂的第一个转换数据)

    术语解释

    hyperplane(超平面) - 一维(1D)空间中的超平面是一个点。 在二维(2D)空间中,它是一条线。 3维(3D)空间中的超平面是一个平面,是一个平面。 为了泛化任何维度,该概念称为超平面。

    线性关系 - 如果第一个变量的变化与第二个变量的恒定变化相对应,则关系为线性。

    **过度拟合 -**过度拟合模型将在发现的数据中发现特定的有用功能后,对训练数据具有非常高的准确性。但是,由于无法泛化,它对测试数据的准确性较低。

    非线性关系 - 非线性关系是指第一个变量的变化不一定与第二个变量的恒定变化相对应。但是,它们可能会相互影响,但这似乎是可以预见的。

    线性回归预测代码

    决策树

    决策树学习如何最好地将数据集拆分为单独的分支,从而使其学习非线性关系。

    随机森林(RF)和梯度增强树(GBT)是两种算法,可构建许多单独的树并汇总其预测。当他们使用结果集合做出最终决定时,它们被称为“整合技术”。

    优点:

    • 单个决策树快速训练
    • 强大的抗噪能力和缺失值
    • “开箱即用”的RF表现非常出色

    缺点:

    • 单一决策树易于过度拟合
    • 复杂的树木很难解释

    术语解释

    非线性关系-非线性关系意味着第一个变量的变化不一定与第二个变量的恒定变化相对应。但是,它们可能会相互影响,但这似乎是可以预见的。

    合并-这是一种合并数据的方法,通常通过取平均数来完成。

    **噪声-**噪声是指数据点不正确,这可能会导致发现不正确的模式。 如果它们离群,通常会加以识别,这意味着它们与其余数据集有很大不同。 但是,请谨慎操作,因为某些异常值可能是有效的数据点,值得调查。

    过度拟合-过度拟合模型将在发现的数据中发现特定的有用功能后,对训练数据具有非常高的准确性。但是,由于无法概括,它对测试数据的准确性较低。

    用决策树和随机森林预测代码

    神经网络

    神经网络可以使用神经元层来学习复杂的模式,而神经元层可以对数据进行数学转换。 输入和输出之间的层称为“隐藏层”。 神经网络可以学习其他算法无法轻易发现的特征之间的关系。

    优点:

    • 适用于许多领域的强大功能/最新技术(例如计算机视觉,语音识别)
    • 甚至可以学习非常复杂的关系
    • 隐藏层减少了对特征工程的需求(无需了解底层数据)

    缺点:

    • 需要大量数据
    • 容易过拟合
    • 训练时间长
    • 需要大型数据集的强大计算能力(价格昂贵)
    • 模型是一个“黑匣子”,无法解释

    术语解释

    神经元 - 人工神经元是一种数学函数。 它需要将一个或多个输入乘以称为“权重”的值并相加在一起的值。 然后,该值将传递到称为“激活函数”的非线性函数,该函数成为输出。

    输入-将要素作为输入传递,例如大小,品牌,位置等。

    输出-这是目标变量,我们正在尝试预测的变量,例如一件商品的价格。

    隐藏层-这些层是数学上可以转换数据的许多神经元。 它们被称为“隐藏”,因为用户仅关注传递要素的输入层和进行预测的输出层。

    特征工程-特征工程是将原始数据转换为更有意义的过程的过程,通常涉及与具有领域专业知识的人员合作。

    过度拟合-过度拟合模型将在发现的数据中发现特定的有用功能后,对训练数据具有非常高的准确性。但是,由于无法泛化,它对测试数据的准确性较低。

    **模型-**机器学习算法经过训练后会创建一个模型,这是一个数学函数,可用于进行新的观察并计算适当的预测。

    神经网络预测代码

    K最近邻

    K最近邻(KNN)通过搜索最相似的训练观测值并合并其值来预测新观测值。

    优点:

    • 简单
    • 强大
    • 无需训练

    缺点:

    • 昂贵且预测新实例的速度很慢
    • 在高维数据集上表现不佳

    术语解释

    • 观察值—观察值是一个示例,即数据中的数据点或行。
    • 合并-这是一种合并数据的方法,通常通过取平均数来完成。
    • 高维-高维数据意味着该数据具有大量特征。 如果您的数据以CSV,数据库或Excel文件表示,那么您将使用很多列来构建模型,则这些数据是高维的

    K个最近邻预测代码

    详情参阅http://viadean.com/ml_predict_value.html

    展开全文
  • 在分析现有群组最近邻查询中位置隐私保护的基础上,提出LBS...与现有的相关工作相比,理论分析表明所提有关方案能够在有效抵御现有的距离交叉攻击和共谋攻击下,实现灵活的群组最近邻查询,同时耗费较低的网络资源。
  • LBSs 中查询类型可 分为单个用户最近邻查询和群组最近邻查询。在深度分析现有群组最近邻查询中位置隐私保护的基础上,提出LBSs 中一种 面向位置隐私保护的群组最近邻查询方法。该方法采用分布式系统结构,...
  • 煤矿井下突发安全事故后,科学判断出救助点周围人员的分布是制定救援方案的关键。本文将反向最近邻的查询算法加以改进,用于查询救助点周围井下...实验表明该算法适用于井下无线传感器网络中的移动对象的反向最近邻查询。
  • NN)中已经对最近邻思想进行过描述,但是写到了RBF中有些重点不够突出,所以,这里重新对最近邻和K近邻的基本思想进行介绍,简洁扼要的加以总结。 最近邻的基本思想 保存所有观察到的有标签的样本,然后对新来的...

    在关于径向基神经网络的一篇博文机器学习之径向基神经网络(RBF NN)中已经对最近邻思想进行过描述,但是写到了RBF中有些重点不够突出,所以,这里重新对最近邻和K近邻的基本思想进行介绍,简洁扼要的加以总结。

    最近邻的基本思想

    保存所有观察到的有标签的样本,然后对新来的测试样本,在标签样本集中找到与测试样本最接近的标签样本,然后将该标签样本作为测试样本的输出。这是一种典型的监督式学习。在机器学习中有着非常重要的应用。只是对于最近邻来讲,训练似乎变了含义,它几乎不做训练,仅仅是存储观测过的样本及标签,并没有学到什么Hypothesis。所以算作是非常lazy的学习算法。在训练时lazy,那么在测试时就要费劲了,因为它需要计算每个标签样本与输入测试样本之间的相似度,运算花销较大。这就体现了磨刀不误砍柴工中磨刀和不磨刀的区别:如果磨刀了,在砍柴的时候就省事儿了,如果不磨刀,在砍柴的时候就得费劲了。

        稍微拓展一下,我们选出最相似的k个邻居,然后由着k个邻居进行投票,或者线性融合,然后再输出,这样的模型就叫做k最近邻模型。在实际应用中K近邻的鲁棒性比最近邻要好许多。实际上将K近邻的相似度作为投票权重融合起来,这样的方法与统计分析中的蒙特卡洛方法颇为神似。

    ***********************************

    2015-8-7



    转载于:https://www.cnblogs.com/huty/p/8519269.html

    展开全文
  • 道路网上连续最近邻查询研究,王琰,,在智能交通系统(ITS)中,最近邻查询是经常遇到的一类查询,尤其是查询对象在路网上移动的情况。本文采用基于RBF神经网络的行程时
  • 最近邻算法(KNN)

    千次阅读 2019-03-17 18:00:50
     目前,对于文本分类的研究已经取得了巨大的进展,常用的文本分类算法有最近邻算法(KNN),支持向量机,人工神经网络,boosting,随机森林等。而KNN算法既是最简单的机器学习算法之一,也是基于实例的学习方法中最...
  • 这是级联的卷积神经网络和K最近邻的Matlab代码实现,用于使用移动相机进行实时人脸识别。 介绍: 所提出的体系结构用k最近邻(kNN)算法代替了softmax层进行推理。 尽管这是迁移学习中的常用技术,但请将其应用于...
  • 网络入侵检测使用机器学习技术:使用支持向量机(SVM),决策树,朴素贝叶,K最近邻(KNN),逻辑回归和随机森林等算法对网络入侵进行分类
  • 论文研究-基于共享最近邻探测社团结构的算法.pdf, 针对经典重叠社团结构发现的派系过滤算法中派系定义过于严格、算法缺乏实用性、时间复杂度高等问题,提出了一种基于...
  • 如何选择最佳的最近邻算法

    千次阅读 2020-12-06 09:34:08
    KNN是我们最常见的聚类算法,但是因为神经网络技术的发展出现了很多神经网络架构的聚类算法,例如 一种称为HNSW的ANN算法与sklearn的KNN相比,具有380倍的速度,同时提供了99.3%的相同结果。 为了测试更多的算法,...
  • 为降低异常证据对合成结果的影响,提出了基于投影分解与 k 最近邻距离的异常证据检测算法。该算法在对证据集中所有证据进行焦元单一元素投影分解的基础上,重新构造证据的基本概率赋值,然后利用证据之间形成的欧式距离...
  • Java中的共享最近邻(SNN)聚类算法实现。 这是集群算法的Java实现,如以下所述: Ertöz,L.,Steinbach,M.和Kumar,V.(2003年)。 在嘈杂的高维数据中查找不同大小,形状和密度的聚类。 SDM。 取自 可以通过...
  • 图片分类-最近邻分类(1)

    千次阅读 2017-06-20 12:01:48
    作为我们学习的第一个方法,我们会开发一个叫最近邻分类器的东西。这个分类器与卷积神经网络(CNN)没有什么关系并且在实际中很少用到。但是他会让我们对图片分类问题的基础算法有一个初步的了解。 如图,分类数据集...
  • 一:简单C++版本的链接: ... OpenCV的ml模块实现了人工神经网络(Artificial Neural Networks, ANN)最典型的多层感知器(multi-layer perceptrons, MLP)模型...
  • 分类是人类时时刻刻在做的事情,比如我们收拾孩子的玩具的时候,需要辨认哪个是“玩沙子套装”的成员、哪些是图书,然后分类存放。...神经网络挺好的,本文介绍一下k最近邻算法(k-Nearest neighbo...
  • 最近邻分类器 作为我们的第一个方法——最近邻分类器。这个分类器与卷积神经网络无关,在实际中很少使用,但它可以让我们了解一个图像分类问题的基本方法。 示例图像分类数据集:CIFAR-10。一个流行的图像分类数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 547
精华内容 218
关键字:

最近邻网络