高维空间

基于高维聚类技术的中文关键词提取算法

若如初见. 提交于 2020-03-01 04:34:44
[摘要] 关键词 提取是中文信息处理技术的热点和难点,基于统计信息的方法是其中一个重要分支。本文针对基于统计信息关键词提取方法准确率低的问题,提出基于高维聚类技术的中文关键词提取 算法 。算法通过依据小词典的快速分词、二次分词、高维聚类及关键词甄选四个步骤实现关键词的提取。理论分析和实验显示,基于高维聚类技术的中文关键词提取方法具备更好的稳定性、更高的效率及更准确的结果。 引言     关键词提取是通过对一篇输入文章做内容分析,按一定比例或字数要求提取出重要且语义相似性凝聚的关键词的过程。关键词自动提取是文本挖掘领域的一个重要分支,在自动摘要、文本分类、文本聚类、文本过滤、话题跟踪、信息检索、自动问答等很多领域有重要作用。   迄今为止,关键词自动提取吸引了不少国内外学者的关注和研究,其理论成果主要包括基于统计信息的方法、机器学习方法和浅层式语义分析方法三大类。其中应用最为广泛的是基于统计信息的关键词提取方法,具备简洁易懂、通用性强等优势。   本文针对基于统计信息关键词提取方法准确率不高的问题,引入高维聚类思想进行改进,提出基于高维聚类技术的中文关键词自动提取算法。经过基于小词典的快速分词、二次分词、高维聚类、关键词甄选四个步骤,算法抽取出的关键词更加准确,并且具有更好的稳定性和更高的效率。 关键词提取方法   关键词自动提取方法分为基于统计信息的方法

T-SNE笔记 无痛理解

浪子不回头ぞ 提交于 2020-02-26 14:46:55
首先看下面两个图, 作左图是t-SNE降维后得到的,有图是PCA 降维后得到的。很明显t-SNE将分的更加清晰,而PCA则重叠严重。 t-sne 是一种非线性的降维方法,一般可视化用的比较多,利用t-sne 可以把高维数据降维到2维或者3维空间上,然后各个数据点跟自己在高维空间上相近的数据点聚集在一起 好比空中漂浮的不同颜色的小球 让它们落地后 再根据原本在空中的聚集情况聚集在一起。 t-sne的原理是在高维空间上非常接近的点在转换到低维空间上相近的可能性会大。 推理过程如下: 首先我们分别计算在高维空间上similarity S(xi,xj),和降维后的similarity S(zi,zj) 图片来自台湾大学李宏毅教授课件 由上图可见,当在高维空间上xi和xi越相近两个点的距离越小越可靠近y轴,假设在sigmiod function 上黄色曲线代表降维前,蓝色曲线代表降维后,当xi和xj距离变大时 其下降速度会非常快,对应到低维空间Z曲线的距离就会很大两者之间的相似度就会减小。 所以定义一个 loss fuction: 最小化这个Loss Function 后就可以找到Z使得P和Z的分布尽可能接近。Z就是降维后的结果。 来源: CSDN 作者: qq_45737639 链接: https://blog.csdn.net/qq_45737639/article/details

《机器学习实战》笔记(十三):Ch13 - 利用PCA来简化数据

旧城冷巷雨未停 提交于 2020-01-31 22:35:34
第13章 利用PCA来简化数据([代码][ch13]) 降维技术 降维的意思是能够用一组个数为d的向量zi来代表个数为D的向量xi所包含的有用信息,其中d<D。假设对一张512 512大小的图片,用svm来做分类,最直接的做法是将图按照行或者列展开变成长度为512 512的输入向量xi,跟svm的参数相乘。假如能够将512 512的向量在保留有用信息的情况下降维到100,那么存储输入和参数的空间会减少很多,计算向量乘法的时间也会减少很多。所以降维能够有效的减少计算时间。而高维空间的数据很有可能出现分布稀疏的情况,即100个样本在100维空间分布肯定是非常稀疏的,每增加一维所需的样本个数呈指数级增长,这种在高维空间中样本稀疏的问题被称为维数灾难。降维可以缓解这种问题。而为什么可以降维,这是因为数据有冗余,要么是一些没有用的信息,要么是一些重复表达的信息,例如一张512 512的图只有中心100*100的区域内有非0值,剩下的区域就是没有用的信息,又或者一张图是成中心对称的,那么对称的部分信息就重复了。正确降维后的数据一般保留了原始数据的大部分的重要信息,它完全可以替代输入去做一些其他的工作,从而很大程度上可以减少计算量。例如降到二维或者三维来可视化。 原因 使的数据更加简单易用 降低很多算法的开销 去除噪声 使的结果变得非常易懂 从什么角度出发来降维

【学习笔记】《数据挖掘:理论与算法》CH5 支持向量机

↘锁芯ラ 提交于 2020-01-28 03:57:22
支持向量机 Support Vector Machines 线性分类 在原始空间做一个映射,在新的空间中进行分类(线性分类器,分类的时候保持margin最大) Margin 间隔:能够偏离的距离 值越大,容错能力越强 求解:2/|w| Support Vector 正好卡住分界面的点 两者关系 Support Vector决定移动的范围,范围的大小叫做Margin 目标 把样本分对 y i ( w ⋅ x i + b ) − 1 > = 0 y_i (w·x_i+b)- 1>= 0 y i ​ ( w ⋅ x i ​ + b ) − 1 > = 0 使Margin最大 m i n 1 2 w T w min\frac{1}{2} w^T w m i n 2 1 ​ w T w 例子 Soft Margin 放宽约束条件(处理噪点) 非线性分类 Feature Space 映射后的空间 ,转变问题 Kernel Trick 低维映射到高维(高维空间中容易分类),而高维空间中的操作等同于低维空间中的操作(高维空间操作复杂) String Kernel 文本内容处理 实例: 资源 来源: CSDN 作者: 广慕君 链接: https://blog.csdn.net/qq_37054356/article/details/103653208

如何理解高维空间

北慕城南 提交于 2020-01-27 15:04:44
如何理解高维空间 超空间理论宣称,有超越人们普遍接受的四维时空的维度存在,宇宙可能确实存在于高维空间中。对此的认识,在世界范围内——包括好几名诺贝尔奖得主中正在扩大。用科学术语来说,超空间理论是以卡鲁查-克莱茵理论和超引力的名称出现的,它的最高级的表述形式被叫为超弦理论。 这一理论甚至预言了精确的维度:10维。通常的4维即空间的3维(长、宽和高)和时间的1维,现在被6个更加宽广的维度所扩展(当然,有些物理学家似乎认为26维更为合理,因为弦只能在10维和26维中自洽的振动)。超弦理论所涉及到的高维空间概念极大的冲击了我们现有的宇宙观,但不可否认的是,这一点已逐渐成为物理学界的主流认识:宇宙可能确实存在于高维空间中。 对我们世界的认识,最牢固的常识性观念可能就是:世界是三维的。不言而喻,长、宽和高已经足以描述我们可见宇宙的所有物体。婴儿和动物实验已经证明,我们固有的观念——世界是三维的——可谓与生俱来。如果我们把时间作为另一维包含进来,那么四维足以记录宇宙中的所有事件。不管我们的仪器探测到哪里,从原子内部直到最遥远的星系团,我们所发现的都是这四维的踪迹。在这样根深蒂固观念的影响下,理解宇宙可能确实存在于高维空间中,这一点变得异常困难。通过观察二维世界中的现象,我们或许能对这一问题有更加直观的认识。 假设有一个二维世界,它是一个巨大的平面。在这个世界里,生活着二维生物,我们称之为“平面人

高维向量快速检索方法Locality Sensitive Hashing之一汉明空间和欧式空间实现

给你一囗甜甜゛ 提交于 2020-01-15 01:14:07
1 高维向量检索问题 高维向量检索主要解决由数据维数增加所引发检索速度急剧下降的的问题。高维空间中数据的特点主要包括以下三个方面: (1) 稀疏性。随着维度增长,数据在空间分布的稀疏性增强; (2) 空空间现象。对于服从正态分布的数据集,当维数大约增加到10时,只有不到1%的数据点分布在中心附近; (3) 维度效应。随着维数的增加,对索引的维护效率急剧下降,并且高维空间中数据点之间的距离接近于相等。 2 树索引方法在高维检索中的缺点 传统的树索引方法,如基于数据划分的索引R-tree、R-tree、SR-tree、k-d tree等和基于空间划分的索引quad-tree、kdb-tree等,在特征维度不高的情况下具有良好的性能,在特征维数足够高的情况下(超过几十维),它们的性能会退化到最原始的顺序查找,这就是所谓的“维度灾难”。树索引方法在高维情况下主要面临着三个困难: (1) 每次划分只使用了特征向量一个维度的信息,在高维情况下这种数据划分方法效率很低; (2) 需要某种形状的覆盖对象来表示某个区域,而固定形状的覆盖对象对区域的描述会有偏差。在高维情况下这个偏差会更明显; (3) 为了获得精确最近邻检索的结果,索引的性能退化到顺序查找的程度。 3 ANN和LSH 由于精确最近邻搜索计算代价高、算法效率低,人们采用近似最近邻搜索方法完成检索的任务。当前

异常点检测算法分析与选择

别来无恙 提交于 2019-12-04 01:36:01
http://blog.csdn.net/lihaifeng555/article/details/4543752 目录 (?) [+] 111 基于统计的异常点检测算法 112 基于距离的异常点检测算法 113 基于密度的异常点检测算法 114 基于深度的异常点检测算法 115 基于偏移的异常点检测算法 116 高维数据的异常点检测算法 121 时间序列相关背景 122 基于离散傅立叶变换的时间序列相似性查找 111 完全匹配查找算法 1.1 常见异常点检测算法 在数据库中包含着少数的数据对象,它们与数据的一般行为或特征不一致,这些数据对象叫做异常点 (Outlier) ,也叫做孤立点。异常点的检测和分析是一种十分重要的数据挖掘类型,被称之为异常点挖掘 [28 ] 。 对于异常数据的挖掘主要是使用偏差检测,在数学意义上,偏差是指分类中的反常实例、不满足规则的特例,或者观测结果与模型预测值不一致并随时间的变化的值等等。偏差检测的基本目标是寻找观测结果与参照值之间有意义的差别,主要的偏差技术有聚类、序列异常、最近邻居法、多维数据分析等。除了识别异常数据外,异常数据挖掘还致力于寻找异常数据间隐含模型,用于智能化的分析预测。对于异常数据分析方法的研究是论文的重要内容之一,通过研究异常数据,找到适合出口企业产品质量深入分析和有效监管的方法和策略。 1.1.1 基于统计的异常点检测算法 从

高维空间最近邻逼近搜索算法评测

匿名 (未验证) 提交于 2019-12-03 00:39:02
最近邻方法是机器学习中一个非常流行的方法,它的原理很容易理解:邻近的数据点是相似的数据点,更可能属于同一分类。然而,在高维空间中快速地应用最近邻方法,却是非常有挑战性的工作。 全球最大的流媒体音乐服务商Spotify需要向上面的海量用户 推荐音乐 ,其中就用到了最近邻方法。也就是在高维空间、大型数据集上应用最近邻方法。 由于维度高、数据规模大,直接应用最近邻方法并不可行,因此,最佳实践是使用逼近方法搜索最近邻。这方面有不少开源库,比如Spotify开源的 Annoy 库。Annoy库的作者 Erik Bernh ar dsson在开发Annoy的过程中发现,尽管有成百上千的使用逼近方法搜索最近邻的论文,却很少能找到实践方面的比较。因此,Erik开发了 ANN-benchmarks ,用来评测 逼近最近邻(approximate nearest neighbor,ANN) 算法。 评估的实现 Annoy Spotify自家的C++库(提供Python绑定)。Annoy最突出的特性是支持使用 静态索引文件 ,这意味着 不同进程可以共享索引 。 FLANN 加拿大英属哥伦比亚大学出品的C++库,提供C、MATLAB、Python、Ruby绑定。 scikit-learn 知名的Python机器学习库scikit-learn提供了 LSHForest 、 KDTree 、 BallTree

核函数精解

匿名 (未验证) 提交于 2019-12-02 23:34:01
https://zhuanlan.zhihu.com/p/45223109 高维映射 与 核方法(Kernel Methods) 29 人赞同了该文章 高维映射跟核方法的概念很容易混淆。 高维映射通过将样本从原始空间映射到一个更高维的特征空间,从而解决了低纬下难以解决的问题。 核方法往往跟高维映射配合使用,可以看做是一种技巧,可以通过它来避免这种映射的计算。 下面详细介绍一下这两个概念。 一、高维映射 我们知道,线性回归是用一条直线来拟合数据。但是我们往往会遇到数据并不服从线性分布的情况,比如: 于是,我们选择变成一个二次方程来拟合: 这里分布是一个二次函数,如果我们遇到了更加复杂的函数,我们依然可以通过选取合适的拉伸函数来变成线性的问题。幸运的是可以证明,只要数据的分布在维度有限的空间上,我们总是能够找到一个更高维度的空间,使得它的分布是线性的。 二、求解高维映射后的线性方程 如果不做高维映射的话,线性回归的解是: 不明白的可以看看我另外一篇的讲线性回归的,里面包含了推导过程。 好了,右边全都是已知量,我们已经解出来了这个模型了。 我们做完高维映射之后的线性方程,要如何去预测模型呢?来模拟一下这个过程: 看看上面的过程中,我们用了多少次拉伸函数。在训练过程中,我们对训练集里面每个样本都用了一次拉伸。在预测的时候,我们又要对预测集里面的每个样本做一次拉伸。现在我告诉你

RRT路径搜索算法C++实现

a 夏天 提交于 2019-11-29 01:59:20
基于 RRT 的路径规划算法,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决 高维空间 和复杂约束的 路径规划 问题。该方法的特点是能够快速有效地搜索高维空间,通过状态空间的随机采样点,把搜索导向空白区域,从而寻找到一条从起始点到目标点的规划路径。适合解决多自由度机器人在复杂环境下和动态环境中的路径规划。 对图片进行灰度图处理,并对像素点进行修改为0和255两个值,来代替二维栅格地图,来实现rrt路径搜索算法,c++主要类实现如下图: class RRT_Eigen { public: RRT_Eigen(MatrixXd startpoint, MatrixXd endpoint); ~RRT_Eigen(); void rrt(Mat map); MatrixXd find_qNew(MatrixXd a, MatrixXd b); bool equal_vers(MatrixXd a, MatrixXd b); bool goalonedges(MatrixXd a, MatrixXd b,int c); bool Edge_freespace(Mat map, MatrixXd a, MatrixXd b); MatrixXd matrix_together(MatrixXd a, MatrixXd b); vector<int>