聚类

图像检索(3):BoW实现

情到浓时终转凉″ 提交于 2020-07-28 02:47:01
在上一篇文章中 图像检索(2):均值聚类-构建BoF 中,简略的介绍了基于sift特征点的BoW模型的构建,以及基于轻量级开源库vlfeat的一个简单实现。 本文重新梳理了一下BoW模型,并给出不同的实现。 基于OpenCV的BoW实现 BoWTrainer的使用 词袋模型开源库DBoW3 BoW BoW模型最初是为解决文档建模问题而提出的,因为文本本身就是由单词组成的。它忽略文本的词序,语法,句法,仅仅将文本当作一个个词的集合,并且假设每个词彼此都是独立的。这样就可以使用文本中词出现的频率来对文档进行描述,将一个文档表示成一个一维的向量。 将BoW引入到计算机视觉中,就是将一幅图像看着文本对象,图像中的不同特征可以看着构成图像的不同词汇。和文本的BoW类似,这样就可以使用图像特征在图像中出现的频率,使用一个一维的向量来描述图像。 要将图像表示为BoW的向量,首先就是要得到图像的“词汇”。通常需要在整个图像库中提取图像的局部特征(例如,sift,orb等),然后使用聚类的方法,合并相近的特征,聚类的中心可以看着一个个的 视觉词汇(visual word) ,视觉词汇的集合构成 视觉词典(visual vocabulary) 。 得到视觉词汇集合后,统计图像中各个视觉词汇出现的频率,就得到了图像的BoW表示。 总结起来就是: 提取图像库中所有图像的局部特征,例如sift,得到特征集合

5个需要掌握的sklearn技能

坚强是说给别人听的谎言 提交于 2020-07-27 15:08:33
虽然scikit-learn在机器学习领域很重要,但是很多人并不知道利用这个库中的一些强大的功能。本文将介绍scikit-learn中5个最有用的5个隐藏的瑰宝,充分利用这些秘密武器将有效提高你的机器学习处理的效率! 1、数据集生成器 Scikit-learn有很多数据集生成器,可以用来生成各种复杂度和维度的人工数据集。 例如, make_blobs 函数可以创建包含很多数据样本、聚类中心、维度的“blobs”或数据聚类。可视化以后可以清晰看出样本的分布: Scikit-learn其实提供了很多数据集创建函数: make_moons(n_samples=100, noise=0.1) make_circles(n_samples=100, noise=0.05) make_regression(n_samples=100, n_features=1, noise=15) make_classification(n_samples=100) 2、流水线/Pipeline 流水线可以将不同的方法组合为单一模型,在自然语言处理(NLP)应用中这一点非常重要。可以通过组合多个模型的方式来创建流水线,数据将依次流过聚合模型中的各环节。流水线有标准的拟合与预测能力,这使得训练过程得到很好的组织。 很多对象都可以整合进流水线: 缺失值处理器/Imputers:如果你的数据中包含缺失的数据

阿里巴巴自研代码管理平台技术解密

允我心安 提交于 2020-07-27 09:06:15
【以下为分享实录,有删节】 阿里巴巴为什么要自研代码管理平台 也许你会问:为什么阿里巴巴要重新做一套代码管理平台,继续用GitLab版本不是挺好的吗?接下来从我个人的角度在这里尝试进行解答。 由于历史原因,在阿里巴巴集团内部代码平台是整个DevOps领域中起步相对较晚的一块业务域,相比于发布域、测试域有着多年的积累和沉淀来讲,2017年时的代码平台可以说是为了满足整体业务需求由几个系统强行拼凑起来的。 为了支撑起阿里巴巴整体的业务发展,研发团队要同时维护6个系统,分别是负责代码托管的GitLab、Svn、Gerrit,以及负责上层代码服务的Phabricator、CodeCenter、ScmCenter。且其中除了CodeCenter、ScmCenter之外,其它四个均是在开源系统之上二次封装改造而来的。其中Gitlab技术栈是基于Ruby,Phabricator基于PHP,SVN基于C,Gerrit基于Java,这给我们日常的开发和维护工作增加了很多负担。 当时代码平台遇到的困难和挑战主要有四个方面: 一、技术架构方面:多套系统架构,多种开发语言,不仅维护成本高,且与阿里集团的主流技术脱节,研发团队同学每天疲于填坑,然而整体上却得不到大的改善。 二、平台发展方面:单纯的Gitlab、Svn、Gerrit均无法与周边关联系统做到有效协同

实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

会有一股神秘感。 提交于 2020-07-27 06:12:15
大量复杂、乱序的图片依次标注效率极低,如果一次可以标注一大片的图片将极大地提升标注效率。 自动分组识别并提取图像特征,通过ModelArts先进的聚类算法可以将所有图片分组:将特征相似的图片归为一类,将特征差别大的图片群分离。 在花朵识别项目中,需对大量无标注的花朵图片进行标注,依次乱序标注蒲公英、郁金香、向日葵等将耗费大量宝贵时间 分组标注场景 启动自动分组,我们事先知道花朵数据集中存在5个类别,为他们分组6类( 聚类算法不能保证一定将5类别完全区分出来,需更细化地分组,于是往往分组数需大于实际类别数 ): 过约3分钟后,通过筛选条件,我们可以得到自动分组的结果,如第1类几乎都是郁金香的图片,第3类几乎都是蒲公英的图片。 第1类 第3类 于是选择当前页 -> 输入 蒲公英 ,即可直接对他们一次性进行标注。 当然并不是每个组都是完美的,如一个组中大多都是 向日葵 ,但还夹杂着 非洲菊 。此时选择当前页后, 去掉相应非向日葵图片左上角的勾 即可: 数据过滤场景 现实中的真实图像数据量少,往往无法满足深度学习网络训练数据量的要求,于是开发者们一般选择网络爬取需要的图片,但爬取下来的图片风格迥异、噪声杂多,想要从中提取需要的图片工作量是巨大的。 ModelArts提供的自动分组算法除了在分组标注上功能强大, 在数据过滤场景上也是奇技淫巧 。 在安全帽项目中,由于实际安全帽图像过少

MATLAB程序:用FCM分割脑图像

99封情书 提交于 2020-07-27 04:56:58
MATLAB程序:用FCM分割脑图像 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 脑图像基础知识请看: 脑图像 ;FCM算法介绍请看: 聚类——FCM ;数据来源: BrainWeb: Simulated Brain Database ,只选取脑图像中的0、1、2、3类,其余类别设为0。本文用到的数据: Simulated Brain Database 1. MATLAB程序 FCM_image_main.m function [accuracy,iter_FCM,run_time]=FCM_image_main(filename, num, K) %num:第几层,K:聚类数 %[accuracy,iter_FCM,run_time]=FCM_image_main('t1_icbm_normal_1mm_pn0_rf0.rawb', 100, 4) [data_load, label_load]=main(filename, num); %原图像 [m,n]=size(data_load); X=reshape(data_load,m*n,1); %(m*n)*1 real_label=reshape(label_load,m*n,1)+ones(m*n,1); Ground_truth(num, K); %标准分割结果

数据挖掘之航空公司客户价值分析

爷,独闯天下 提交于 2020-07-25 13:48:26
课程设计选题:详细文档项目见 https://download.csdn.net/download/sereasuesue/12050550 题目:航空公司客户价值分析 目录 一、 任务背景 2 二、 数据挖掘目标 2 三、数据探索与预处理 3 构建航空客户价值分析的关键特征 3 数据抽取 5 探索性分析 5 数据处理 6 四、模型构建与评价 12 1.模型构建K-Means聚类算法 12 客户价值分析 13 五、 总结 16 任务背景 高铁、动车等铁路的不断兴建,出行方式的多元化让航空公司受到很大的冲击。航空公司之间竞争也很激烈,除了四大航空公司之间的竞争之外,还有新兴产业的各类小型航空公司、民营航空公司,旅游等。甚至国外航线出现高速度增长。 随着时代的发展,客户问题越来越受到关注,客户流失对利润增长造成了非常大的负面影响。客户与航空公司的关系越长,航空公司的利润就越高。一个客户使用了几次这次服务,感觉服务不错,那下次还会倾向于这个服务,但是要获得新客户,不仅需要在广告和人员工资上花费很多,去吸引顾客,在销售、市场也会花费很多,并且大多数新客户产生的利润不如那些流失的老客户多。很明显,失去一个客户对公司来说比得到一个新客户更昂贵。另外老用户也可以带来新用户。 因此,在这一背景下,分析航空公司客户数据,对客户进行分类,提高客户流失率是当务之急

LiteAI 四大杀手锏,解锁物联网智能设备AI开发难关

瘦欲@ 提交于 2020-07-24 10:16:49
【摘要】 IoT设备中嵌入AI能力实现产品的智能升级,已经是AIoT行业发展的重要通道,那怎样才能实现AIoT = AI + IoT呢?如何将AI模型塞到小小的IoT设备里,让它可以轻松运行起来呢?成为了AI开发者遇到的棘手难题。 你知道我们生活中常见的物联网智能设备融合AI技术后,会给我们带来什么样的智能交互体验?在我们指尖触碰的那一刹那背后隐藏的代码世界又是怎么样的呢? 今天就来和大家说说IoT智能设备轻松实现AI的奥秘! AIoT,智能化升级的最佳通道 AIoT,对我们来说已经不是一个陌生的词汇了,随着深度学习的蓬勃发展和5G万物互联时代的到来,越来越多的人将AI与IoT结合到一起,而 AIoT已经成为传统行业智能化升级的最佳通道,是物联网发展的必然趋势。 AI和IoT相互交融产生的魔力,让许多智能产品及智能应用成为无穷想象的“潜力股”。比如智能音箱中的语音唤醒,家庭监控里的人脸识别,可穿戴设备上的AI计步等等,已经验证物联网产品融入人工智能,升级成了智能设备后的“威力”。 但,物联网AI 开发者的“痛”,你遇到过么? 很多AI开发者开发者在训练得到AI模型之后,必须得在设备上实现模型的推理才能获得相应的AI能力,但目前AI模型不能直接在设备上运行起来。这就意味着, 开发者还得有一套对应的推理框架才能真正实现AI与IoT设备的结合。 另外

K-means聚类算法及python代码实现

点点圈 提交于 2020-05-09 20:37:48
K-means 聚类算法( 事先数据并没有类别之分!所有的数据都是一样的 ) 1、概述 K-means 算法是 集简单和经典于一身的 基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。 该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为最终目标。 2、核心思想 通过 迭代 寻找 k 个 类簇 的一种划分方案,使得用这 k 个 类簇 的均值来代表相应各类样本时所得的总体误差最小。 k 个聚类具有以下特点: 各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开 。 k-means 算法的基础是 最小误差平方和准则 , 其代价函数是: 式中, μc(i) 表示第 i 个聚类的均值。 各 类簇 内的样本越相似,其与该类均值间的误差平方越小,对所有类所得到的误差平方求和,即可验证分为 k 类时,各聚类是否是最优的。 上式的代价函数无法用解析的方法最小化,只能有迭代的方法。 3、算法步骤图解 下图展示了对 n 个样本点进行 K-means 聚类的效果,这里 k 取 2 。 4、算法实现步骤 k-means 算法是将样本聚类成 k 个簇( cluster ),其中 k 是用户给定的 ,其求解过程非常直观简单,具体算法描述如下: 1) 随机选取 k 个聚类质心点 2) 重复下面过程直到收敛 { 对于每一个样例 i ,计算其应该属于的类:

K-means聚类算法及python代码实现

♀尐吖头ヾ 提交于 2020-05-09 15:46:54
K-means 聚类算法( 事先数据并没有类别之分!所有的数据都是一样的 ) 1、概述 K-means 算法是 集简单和经典于一身的 基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。 该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为最终目标。 2、核心思想 通过 迭代 寻找 k 个 类簇 的一种划分方案,使得用这 k 个 类簇 的均值来代表相应各类样本时所得的总体误差最小。 k 个聚类具有以下特点: 各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开 。 k-means 算法的基础是 最小误差平方和准则 , 其代价函数是: 式中, μc(i) 表示第 i 个聚类的均值。 各 类簇 内的样本越相似,其与该类均值间的误差平方越小,对所有类所得到的误差平方求和,即可验证分为 k 类时,各聚类是否是最优的。 上式的代价函数无法用解析的方法最小化,只能有迭代的方法。 3、算法步骤图解 下图展示了对 n 个样本点进行 K-means 聚类的效果,这里 k 取 2 。 4、算法实现步骤 k-means 算法是将样本聚类成 k 个簇( cluster ),其中 k 是用户给定的 ,其求解过程非常直观简单,具体算法描述如下: 1) 随机选取 k 个聚类质心点 2) 重复下面过程直到收敛 { 对于每一个样例 i ,计算其应该属于的类:

K-means聚类算法及python代码实现

做~自己de王妃 提交于 2020-05-09 15:42:46
K-means 聚类算法( 事先数据并没有类别之分!所有的数据都是一样的 ) 1、概述 K-means 算法是 集简单和经典于一身的 基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。 该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为最终目标。 2、核心思想 通过 迭代 寻找 k 个 类簇 的一种划分方案,使得用这 k 个 类簇 的均值来代表相应各类样本时所得的总体误差最小。 k 个聚类具有以下特点: 各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开 。 k-means 算法的基础是 最小误差平方和准则 , 其代价函数是: 式中, μc(i) 表示第 i 个聚类的均值。 各 类簇 内的样本越相似,其与该类均值间的误差平方越小,对所有类所得到的误差平方求和,即可验证分为 k 类时,各聚类是否是最优的。 上式的代价函数无法用解析的方法最小化,只能有迭代的方法。 3、算法步骤图解 下图展示了对 n 个样本点进行 K-means 聚类的效果,这里 k 取 2 。 4、算法实现步骤 k-means 算法是将样本聚类成 k 个簇( cluster ),其中 k 是用户给定的 ,其求解过程非常直观简单,具体算法描述如下: 1) 随机选取 k 个聚类质心点 2) 重复下面过程直到收敛 { 对于每一个样例 i ,计算其应该属于的类: