聚类分析

机器学习算法

谁说我不能喝 提交于 2020-03-28 07:40:58
转载自: http://www.cnblogs.com/tornadomeet   朴素贝叶斯:   有以下几个地方需要注意:   1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。   2. 计算公式如下:      其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是 的计算方法,而由朴素贝叶斯的前提假设可知, = ,因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。   3. 如果 中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace光滑, 分母加k的原因是使之满足全概率公式)。    朴素贝叶斯的优点:   对小规模的数据表现很好,适合多分类任务,适合增量式训练。    缺点 :   对输入数据的表达形式很敏感。   决策树:   决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它

详解聚类算法Kmeans的两大优化——mini-batch和Kmeans++

淺唱寂寞╮ 提交于 2020-03-25 09:36:18
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 机器学习专题的第13篇 文章,我们来看下Kmeans算法的优化。 在上一篇文章当中我们一起学习了Kmeans这个聚类算法,在算法的最后我们提出了一个问题:Kmeans算法虽然效果不错,但是每一次迭代都需要遍历全量的数据,一旦数据量过大,由于计算复杂度过大迭代的次数过多,会导致 收敛速度非常慢 。 想想看,如果我们是在面试当中遇到的这个问题,我们事先并不知道正解,我们应该怎么回答呢? 还是老套路,我们在回答问题之前,先来分析问题。问题是收敛速度慢,计算复杂度高。计算复杂度高的原因我们也知道了, 一个是因为样本过大,另一个是因为迭代次数过多 。所以显然,我们想要改进这个问题,应该从这两点入手。 这两点是问题的关键点,针对这两点我们其实可以想出很多种优化和改进的方法。也就是说这是一个开放性问题,相比标准答案,推导和思考问题的思路更加重要。相反,如果我们抓不住关键点,那么回答也会跑偏,这就是为什么我在面试的时候,有些候选人会回答使用分布式系统或者是增加资源加速计算,或者是换一种其他的算法的原因。 也就是说分析问题和解决问题的思路过程,比解决方法本身更加重要。 下面,我们就上面提到的两个关键点各介绍一个优化方法。 mini batch mini batch的思想非常朴素,既然全体样本当中数据量太大

YOLO v2 / YOLO9000论文详解

╄→尐↘猪︶ㄣ 提交于 2020-03-02 01:14:56
YOLO9000:Better, Faster, Stronger 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢 ! 源论文地址: https://arxiv.org/abs/1612.08242 注 :文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,斜体部分为笔者的一些想法,因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~ YOLO v2 和 YOLO 9000 可以看成是两部分,其中v2是对v1的各个部分进行技术上的加持和改进;9000是对数据集和检测类别进行扩展。这里我们重点说YOLO v2部分。 v2相对于v1来说,速度更快、精度更高。 具体改进措施有以下几点: 1. 各卷积层后添加BN层; 2. YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响; 3. 引入anchor boxes(召回率上升,准确率略微下降),448×448 -> 416×416 通过使用K-means聚类方法筛选出一个网格cell里预测5个锚点框最合适; 通过给anchor

山东大学2019-2020数据仓库与数据挖掘期末考试

折月煮酒 提交于 2019-12-18 14:06:56
山东大学2019-2020数据仓库与数据挖掘期末考试 一、 1.数据分析的步骤,每个步骤都干啥 2.数据仓库的特点,解释 3.大数据4v理论 4.数据流概念,难点是什么,解决方案的特点 5.检测离群点的四种方法 二、 1、给出三个维度(item,time,location)两个度量构建星型模型 2、想要得到2017第一季度的所有品牌销售状况,进行哪些olap操作 三、 1.数据仓库的体系结构图 2.解释每个层的作用 3.数据集市的定义 4.molap的原理 四、 给出几个点,进行k-means 列出每次的聚类结果 写出第三次聚类的详细过程 五、 Fp树的构建 寻找t的条件模式基 六、 决策树的思想、两种类型是什么 给出离散化的标准,列出符合某一个标准的数据集 将决策树转化为判断过程 给出一个条件,判断是否会购买(写过程) 树中有一个?,判断?应该是什么,说出理由 七、 给出abcdef几个商品,ABCDEF几个用户 给出F喜欢的商品abd,给出用户喜欢的商品列表 1.应该用哪种推荐算法,算法思想是什么 2.应该给F推荐哪个商品 题量很大,希望能帮到要考这门课的同学 By naggy 来源: CSDN 作者: Departuresna 链接: https://blog.csdn.net/Departuresna/article/details/103595931

吴恩达机器学习视频笔记——8

孤街醉人 提交于 2019-12-11 15:28:28
10、支持向量机 10.1、大边界的直观理解 支持向量机 ( Support VectorMachine ) ,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。 10.2、核函数 10.3、应用SVM 11、聚类 11.1、无监督机器学习 11.2、K-Means(K均值算法) 11.3优化目标 11.4、随机初始化 11.5、选择聚类数 12、降维 12.1、动机一:数据压缩 12.2、动机二:数据可视化 12.3、主成分分析问题 12.4、主成分分析算法 12.5、选择主成分的数量 12.6、重建的压缩表示 12.7、主成分分析法的应用建议 本博客主要引用文章如下: 作者:黄海广 链接:斯坦福大学2014机器学习教程个人笔记(V5.4) 来源:PDF 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/AlexWangle-one/p/12022673.html

《基于数据挖掘聚类算法的学生成绩分析》 文献笔记(十八)

柔情痞子 提交于 2019-12-08 20:30:30
一、基本信息 标题:基于数据挖掘聚类算法的学生成绩分析 时间:2019 来源:电脑知识与技术 关键词:数据挖掘; 数据仓库; 方法; 二、研究内容 1.数据挖掘系统结构 2.模式的兴趣度 (1)模式容易让人理解; (2)新的数据同样满足挖掘的模式; (3)模式具有潜在的效用; (4)模式是以前没出现过的, 具有新颖性; 3.FP树结构 三、结论 收集好了的数据进行离散化处理, 特别是性别与年龄的离散化的处理方便了挖掘算法的实现。 同时为确保挖掘出的规则的实用性和正确性对学生成绩的影响因素进行问卷调查, 便于以后比对。主要使用数据挖掘中FP增长算法作为基础, 在实际情况为依托进行频繁项集的计算过程中对FP增长算法进行了相应的调整, 使之更容易由开发工具实现并减少了系统开销, 并得到关联规则。 四、参考文献 [5]张贵元.基于数据挖掘聚类算法的学生成绩分析[J].电脑知识与技术,2019,15(09):1-2 来源: https://www.cnblogs.com/zzq1234/p/12007037.html

项目 3: 创建用户分类

白昼怎懂夜的黑 提交于 2019-12-06 15:05:54
欢迎来到机器学习工程师纳米学位的第三个项目!在这个notebook文件中,有些模板代码已经提供给你,但你还需要实现更多的功能来完成这个项目。除非有明确要求,你无须修改任何已给出的代码。以 '练习' 开始的标题表示接下来的代码部分中有你必须要实现的功能。每一部分都会有详细的指导,需要实现的部分也会在注释中以 'TODO' 标出。请仔细阅读所有的提示! 除了实现代码外,你还 必须 回答一些与项目和你的实现有关的问题。每一个需要你回答的问题都会以 '问题 X' 为标题。请仔细阅读每个问题,并且在问题后的 '回答' 文字框中写出完整的答案。我们将根据你对问题的回答和撰写代码所实现的功能来对你提交的项目进行评分。 提示: Code 和 Markdown 区域可通过 Shift + Enter 快捷键运行。此外,Markdown可以通过双击进入编辑模式。 开始 在这个项目中,你将分析一个数据集的内在结构,这个数据集包含很多客户真对不同类型产品的年度采购额(用 金额 表示)。这个项目的任务之一是如何最好地描述一个批发商不同种类顾客之间的差异。这样做将能够使得批发商能够更好的组织他们的物流服务以满足每个客户的需求。 这个项目的数据集能够在 UCI机器学习信息库 中找到.因为这个项目的目的,分析将不会包括'Channel'和'Region'这两个特征——重点集中在6个记录的客户购买的产品类别上。

A--K-Means快速聚类

蓝咒 提交于 2019-12-05 06:34:55
聚类概述 皆在理解/探索数据的某些自然结构,商业上最有名的FRM(客户价值评估模型)就是聚类分析的一种数据处理,降维,数据离散压缩,有效的发现最近邻居等。 种类 1.K-Means:K均值是基于原型的,划分的聚类计数,它试图发现用户指定个数(K)的簇,(由质心代表) 2.层次聚类:把数据划分为又层次包含的簇,开始:每个点作为一个单点簇,然后重复的合并两个最相近的簇,知道产生一个包含所有点的簇 3.DBSCAN:这是一种产生划分聚类的基于密度的聚类算法,簇的个数由算法自动决定,低密度区域的点被视为噪声而忽略,因此它不产生完全分类 K-Means 原理:随机放入K个点,然后计算组内每一个点到这K个点的距离,将距离最近的点划分到K1所代表的簇中,划分成初始的K个簇,然后以K个簇为基础,分别求均值更新为质心,之后再计算所有点到质心的距离,更新点的所属簇,再次更新质心,重复迭代直到质心不在发生变化为止。 In [2]: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt In [3]: iris = pd.read_csv('iris (1).txt', header=None) iris.shape Out[4]: (150, 5) In [6]:

dd

坚强是说给别人听的谎言 提交于 2019-12-04 10:37:23
Python数据分析简介 Python入门 运行:cmd下"python hello.py" 基本命令: # for 循环 s = 0 for k in range(101): #1-100 s = s + k print s # 函数 def add2(x): return x+2 print add2(1) def add2(x=0, y=0): return [x+2, y+2] #返回列表 def add3(x, y): return x+3, y+3 #双重返回 a,b = add3(1, 2) # 匿名函数 f = lambda x : x+2 #定义函数f(x)= x+2 g = lambda x, y : x+y #定义函数g(x,y)= x+y, g(1,2)结果为3 # 数据结构 # a, b是列表 # 列表函数cmp(a, b) len(a) max(a) min(a) sum(a) sorted(a) # 列表对象方法 a.append(1) a.count(1) a.extend([1,2]) a.index(1) a.insert(2,1) a.pop(1) b = a # b是a的别名 b = a[:] #数据复制 # 列表解析 a = [1, 2, 3] b = [] for i in a: b.append(i+2) # 等价于 a =[1, 2,

k-means聚类分析范例程序

无人久伴 提交于 2019-11-29 12:05:29
K-Means聚类算法原理参考以下链接: https://www.cnblogs.com/pinard/p/6164214.html 2. 传统K-Means算法流程     在上一节我们对K-Means的原理做了初步的探讨,这里我们对K-Means的算法做一个总结。     首先我们看看K-Means算法的一些要点。     1)对于K-Means算法,首先要注意的是k值的选择,一般来说,我们会根据对数据的先验经验选择一个合适的k值,如果没有什么先验知识,则可以通过交叉验证选择一个合适的k值。     2)在确定了k的个数后,我们需要选择k个初始化的质心,就像上图b中的随机质心。由于我们是启发式方法,k个初始化的质心的位置选择对最后的聚类结果和运行时间都有很大的影响,因此需要选择合适的k个质心,最好这些质心不能太近。     好了,现在我们来总结下传统的K-Means算法流程。      输入是样本集 D = { x 1 , x 2 , . . . x m } ,聚类的簇树k,最大迭代次数N     输出是簇划分 C = { C 1 , C 2 , . . . C k }       1) 从数据集D中随机选择k个样本作为初始的k个质心向量: { μ 1 , μ 2 , . . . , μ k }     2)对于n=1,2,...,N       a) 将簇划分C初始化为 C