
机器学习&&数据挖掘&&推荐系统
多线程
这个作者很懒,什么都没留下…
展开
-
网格聚类算法(二)
在本篇博文中,主要学习一下STING聚类算法。 (1) STING:统计信息网格STING是一种基于网格的多分辨率的聚类技术,它将输入对象的空间区域划分成矩形单元,空间可以用分层和递归方法进行划分。这种多层矩形单元对应不同的分辨率,并且形成了一个层次结构:每个高层单元被划分成低一层的单元。关于每个网格单元的属性的统计信息(如均值,最大值和最小值)被作为统计参数预先计算原创 2017-02-27 17:35:43 · 16269 阅读 · 0 评论 -
层次聚类算法总结
上述的几篇博文已经大致将基本的层次聚类算法讲了一下,现在做个简单总结,将这几个算法串联起来。AGNES和DIANA这两个层次聚类算法尽管比较简单,但是存在缺点,因此需要改进,针对不同的缺点,引入了不同的算法。(1)可伸缩性差(2)在凝聚或者分裂的聚类过程中,之前的操作不能撤销。(3)只能发现球状簇。主要针对这三个缺点,下面对应的算法做了改进。通过这一个流程图,可以轻松的将层次聚原创 2017-02-25 22:59:54 · 2147 阅读 · 0 评论 -
正则化与交叉验证
上一篇博文学习了一下模型的的学习策略,实际上就是目标函数、评价函数。有两种准则:经验风险最小化,结构风险最小化。两者的区别就是结构风险最小化是在经验风险最小化的基础上加了一个正则化项。首先就了解一下正则化项。(1)正则化模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或者罚项, 正则化项符合奥原创 2017-03-05 15:09:55 · 2111 阅读 · 3 评论 -
统计学习三要素之策略
李航老师在《统计学习方法》中讲过:统计学习方法都是由模型、策略和算法构成的。在这篇博文中,学习一下策略。 策略就是在有了模型的假设空间之后,考虑按照什么样的准则学习或者选择最优的模型,统计学习的目标就在于从假设空间中选取最优模型。策略其实可以认为是根据模型导出来的目标函数、评价函数。(1)损失函数:(a)0-1损失函数。 0-1损失函数就是预测值与真实标签相同原创 2017-03-05 11:43:12 · 796 阅读 · 0 评论 -
感知机算法(二)---代码实现
废话不多说了,这篇博文就是代码。(1) 感知机学习算法的原式形式package perceptron;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;public class Perceptron { public stat原创 2017-03-04 10:55:01 · 1041 阅读 · 0 评论 -
线性回归
在给定由d个属性描述的示例x=(x[1]; x[2];…x[d]),其中xi为样本x在第i个属性上的取值,线性模型试图学得一个属性的线性组合来进行预测的函数,即 f(x) =w1 x[1]+w2 x[2]+w3 x[3]+…+wd x[d]+b; 一般写成f(x)=w.x+b 线性建模形式简单、易于建模,但是却蕴含着机器学习中一些重要的基本思想,许多功能强大的非线性原创 2017-03-05 19:02:40 · 2708 阅读 · 0 评论 -
密度聚类算法(三)
OPTICS算法尽管DBSCAN算法能够给定的输入参数r(邻域的最大半径)和MinPts(核心对象的最小数量)聚类对象,但是参数任务留给了用户。参数的设置通常依靠经验,难以确定。大多数算法对参数的设置都比较敏感,设置的不同可能导致很大差别的聚类效果。 基于密度的簇关于邻域阈值是单调的。即在DBSCAN中,对于固定的MinPts值和两个邻域r1 上面这一段原创 2017-02-26 16:09:31 · 2086 阅读 · 0 评论 -
逻辑斯蒂回归
(1)线性回归于逻辑斯蒂回归联系与区别 线性回归:线性回归是根据样本X各个维度的Xi的线性叠加(线性叠加的权重系数wi就是模型的参数)来得到预测值的Y,然后最小化所有的样本预测值Y与真实值y‘的误差来求得模型参数。我们看到这里的模型的值Y是样本X各个维度的Xi的线性叠加,是线性的。 然后再来看看我们这里的logistic回归模型,模型公式是:,这里假设W>0,Y与X各维度叠加和(原创 2017-03-06 14:48:26 · 986 阅读 · 0 评论 -
机器学习中的范数规则化之(一)L0、L1与L2范数
机器学习中的范数规则化之(一)L0、L1与L2范数zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。最后聊下规则化项参数的选择问题。这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文。知识有限,以下都是我一些浅显的看法转载 2017-03-06 15:40:58 · 703 阅读 · 0 评论 -
推荐系统概述
推荐系统概述 个性化推荐系统需要依赖用户的行为数据,通过分析大量用户行为日志,个不同用户提供不同的个性化推荐。(1)基于邻域的方法: 基于用户的协同过滤算法:这种算法给用户推荐和他兴趣相似而其他用户喜欢的物品。 基于物品的协同过滤算法。这种算法给用户推荐和他之前喜欢的物品相似的物品。 评测指标:召回率,覆盖率,新颖度等 新颖度:用推荐列表中物品的平均原创 2017-03-13 23:27:11 · 711 阅读 · 0 评论 -
数据倾斜处理方法
数据倾斜处理方法 对于不平衡数据的分类,为了解决上述准确率失真的问题,我们要换用 F 值取代准确率作为评价指标。用不平衡数据训练,召回率很低导致 F 值也很低。这时候有两种不同的方法。第一种方法是修改训练算法,使之能够适应不平衡数据。著名的代价敏感学习就是这种方法。另一种方法是操作数据,人为改变正负样本的比率。本文主要介绍数据操作方法。 1. 欠抽样方法 欠抽样方法是针对原创 2017-03-13 23:15:15 · 2606 阅读 · 0 评论 -
特征选择与降维总结
特征选择 特征选择是一个很重要的数据预处理过程,在现实的机器学习任务中,获得数据之后通常进行特征选择。 进行特征选择的原因: (1) 维数灾难问题 (2) 去除不相关特征,往往会降低学习任务的难度。 如果没有任何领域知识作为先验假设,那就只好遍历所有可能的子集,然而在计算上是不可行的,或遭遇组合爆炸。常用的方法是:产生候选子集,评价之,基于评价结果,原创 2017-03-13 23:11:23 · 4765 阅读 · 0 评论 -
集成学习(二)
GBDT学习算法 GBDT是一个应用很广泛的算法,可以用来做分类、回归。在很多的数据上都有不错的效果。GBDT是由多棵回归树组成的。 原始的Boost算法是在算法开始的时候,为每一个样本赋上一个权重值,初始的时候,大家都是一样重要的。在每一步训练中得到的模型,会使得数据点的估计有对有错,我们就在每一步结束后,增加分错的点的权重,减少分对的点的权重,这样使得某些点如果老是被分错,那么就会原创 2017-03-13 23:03:55 · 692 阅读 · 0 评论 -
集成学习(一)
集成学习通过构建并结合多个学习器来完成学习任务。集成学习通过将多个学习器进行结合,常获得比单一学习器显著优越的泛化性能。 根据个体学习器的生成形式,目前的集成学习方法大致分成两类:个体学习器之间存在强依赖关系,必须串行生成的序列化方法。个体之间不存在强依赖关系,可以同时生成的并行化方法。前者的代表是Boosting,后者的代表是bagging和随机森林。 Boosting: (1原创 2017-03-13 22:54:34 · 2405 阅读 · 0 评论 -
朴素贝叶斯算法
朴素贝叶斯分类算法一 算法基本内容 朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法。对于给定的数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布。然后基于此模型,对给定的输入,利用贝叶斯定理求出后验概率最大。 朴素贝叶斯分类属于生成模型,生成模型由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y/X)作为预测的模型,即生成模型: P(Y原创 2017-03-12 21:05:01 · 3167 阅读 · 0 评论 -
KNN算法
KNN算法一 三大要素 KNN算法三大要素:K值的选择,距离向量,以及分类规则。 KNN属于懒惰学习算法,不需要训练过程。既可以分类,也可以进行回归分析。 (1)K值的选择会对算法的结果产生重大影响。K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,但容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,但缺点是学习的近似误差增大,这时与输入实例较远原创 2017-03-12 16:36:02 · 2794 阅读 · 0 评论 -
决策树算法
决策树算法 决策树是一种基本的分类与回归算法,其实就是if-then的集合。 主要包括三个部分: (1) 特征选择 (2) 决策树的生成 (3) 决策树的剪枝 决策树由结点和有向边组成。结点有两种类型:内部结点和叶子结点。内部结点表示一个特征或者属性。叶子结点表示一个类。决策树学习的损失函数通常是正则化的极大似然函数。 常用的算法有原创 2017-03-12 14:48:14 · 1160 阅读 · 0 评论 -
感知机算法(一)---原理
感知机算法是错误驱动的在线学习算法。首先初始化一个权重W0、截距b,然后每次分错样本时,就用这个样本改变权重以及截距b。其实就是构造了一个分类超平面。(1)感知机算法的学习策略是极小化误分类点到超平面的距离。 具体推导过程如下所示,其实不用看下面,很简单,就是求出误分类点到分类超平面之间的距离总和。即学习的损失函数就是误分点到超平面距离。(2)接下来,原创 2017-03-04 09:11:10 · 10683 阅读 · 2 评论 -
密度聚类算法(五)总结
前面的四篇博文已经大致的将密度聚类以及密度聚类常用的算法DBSCAN,OPTICS,DENCLUE介绍了一下,按照惯例要改将这一部分串一下了。(1)DBSCAN算法全局参数,导致聚类质量不是很好.(2)OPTICS针对全局参数做了改进,输出簇排序。(3)但是DBSCAN与OPTICS依旧是对邻域半径r比较敏感,引入了DENCLUE算法。总结如下图所示,具体细节可以翻阅前面的几篇博文原创 2017-02-27 17:09:21 · 1863 阅读 · 1 评论 -
密度聚类算法(四)
DENCLUE:基于密度分布函数的聚类DENCLUE是一种基于一组密度分布函数的聚类算法。首先说一下密度估计的概念:密度估计就是根据一系列观测数据集来估计不可观测的概率密度函数。在基于密度聚类的背景下,不可观测的概率密度函数是待分析的所有可能的对象的总体的真实分布。观测数据集被看做取自该总体的几个随机样本。不好理解?好,那就通俗的说一下:比如说要找一个女朋友,你不了解她,但是可以先原创 2017-02-27 11:05:17 · 5352 阅读 · 0 评论 -
密度聚类算法(二)
DBSCAN是一种著名的密度聚类算法,基于一组邻域参数(r,MinPts)来刻画样本的紧密程度。说的通俗点就是以某个样本点为中心,以r为半径进行画圆,在圆内的范围都是邻域范围。 基本概念: (1)r-邻域。对任意Xi属于数据集D,其r邻域包含样本集D中与Xi的距离不大于r的样本,即N(Xi)={Xj属于D,dist(Xi,Xj)其实就是画了个圈子)原创 2017-02-26 16:06:00 · 2312 阅读 · 1 评论 -
密度聚类算法(一)
之前的两个小专题已经把划分方法聚类/层次方法聚类过了一遍,接下来就是我个人非常喜欢的一类聚类算法——密度聚类算法。通过之前的博文,我们发现划分方法聚类算法与层次聚类算法把距离(欧氏距离,闵可夫斯基距离,曼哈顿距离等)作为两个样本或者两个簇之间相似度的评价指标,因此导致了划分方法聚类算法和层次聚类算法都旨在发现球状簇,对任意形状的聚类簇比较吃力。如下图所示,左边的聚类簇,很明显是球状簇,那么原创 2017-02-26 10:41:11 · 5589 阅读 · 0 评论 -
层次算法聚类(四)
Chameleon聚类算法:使用动态建模的多阶段层次聚类Chamelon算法是一种层次聚类算法,它采用动态建模来确定一对簇之间的相似度。在Chamelon算法中簇的相似度依据有如下两点评估:(1)簇中对象的连接情况。(2)簇的邻近性。即如果两个簇的互联性很高并且他们之间又靠的很近,那么就将其合并。 (1) Chamelon算法采用K-最近邻图的方法来构建稀疏图,,图的每一个顶点代表一原创 2017-02-25 22:46:48 · 1532 阅读 · 0 评论 -
层次聚类算法(三)
上边博文学习了一下AGNES算法与DIANA算法,针对伸缩性差一级不能撤销先前步骤所做的工作,学习一下BIRCH聚类算法。BIRCH算法:Balanced Iterative Reducing and Clustering using Hierarchies.利用层次结构的平衡迭代规约和聚类。名字真的长的不行了。该算法是为大量数值数据聚类设计的,它将层次聚类(在初始微聚类阶段)与诸如迭原创 2017-02-25 18:48:27 · 3176 阅读 · 0 评论 -
层次聚类算法(一)
层次聚类(hierarchical clustering)试图在不同层次上对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自底向上”的聚合策略,也可以采用“自顶向下”的分拆策略。即层次聚类可以是凝聚的也可以是分裂的。 凝聚的层次聚类方法使用自底向上的策略。即刚开始每个点都认为是一个簇,然后在迭代过程中,不断的合并直到满足某种条件。在合并步骤中,它找出最相近的簇(“原创 2017-02-25 17:35:41 · 5108 阅读 · 0 评论 -
划分方法聚类(四) 总结
至此,划分方法的聚类算法已经讲得差不多了,其实只要把握住K-MEANS原创 2017-02-25 08:51:02 · 848 阅读 · 0 评论 -
划分方法聚类(三) Canopy+K-MEANS 算法解析
前面的博文已经系统的讲述了K-MEANS算法以及由K-MEANS算法改进而来的一系列算法。在这里我们将其做个总结。首先讲一下前面提到的Canopy算法。Canopy算法与传统的聚类算法(比如K-means)不同,Canopy聚类最大的特点是不需要事先指定k值(即clustering的个数),因此具有很大的实际应用价值。与其他聚类算法相比,Canopy聚类虽然精度较低,但其在速度上有原创 2017-02-25 08:30:40 · 12403 阅读 · 5 评论 -
层次聚类算法(二)
上篇博文简单的讲述了层次聚类的基本概念,接下来就是具体的讲述凝聚的聚类算法AGNES算法与分裂的聚类算法DIANA聚类算法。AGNES算法:算法描述: 输入:包含n个对象的数据库,终止条件簇的数目k 输出:k个簇(1) 将每个对象当成一个初始簇(2) Repeat(3)原创 2017-02-25 17:55:27 · 1087 阅读 · 0 评论 -
划分方法聚类(二)K-MEANS算法的改进
本文将主要针对K-MEANS算法主要缺点的改进进行讲述。(1)离群点,噪声点的改进:针对离群点、噪声点,通过离群点检测算法,去掉离群点与噪声点。数据挖掘方面,经常需要在做特征工程和模型训练之前对数据进行清洗,剔除无效数据和异常数据。异常检测也是数据挖掘的一个方向,用于反作弊、伪基站、金融诈骗等领域。常用的离群点检测算法有:A:基于统计的离群点检测:设定数据的分布模型,不和谐检验,发现离原创 2017-02-24 23:15:59 · 7565 阅读 · 0 评论 -
划分方法聚类(一) K-MEANS算法
聚类算法之划分方法聚类1,原型聚类(划分方法):给定一个n个对象的集合,划分方法构建数据的K个分区。大部分划分方法是基于距离的,所以只能发现球类簇。为了达到全局最优,K值需要全局遍历。计算量太大。普遍采用了流行的启发式算法。如K均值和k-中心点算法,渐进的提高聚类质量,逼近局部最优解,这些启发聚类算法适合发现中小规模的数据的球状簇。划分方法的基本特点:(1) 发现球状互斥的簇(2)原创 2017-02-24 22:34:48 · 4975 阅读 · 0 评论 -
聚类算法
一 聚类算法基本概念:1,无监督学习:训练样本的标记信息是未知的,目标通过对无标记样本的学习来揭示数据的内在性质及规律。聚类既可以作为一个单独过程,也可以作为分类学习的前驱过程。2,聚类的性能度量:分类的性能度量方法有很多如准确率,AUC,召回率等等,聚类的性能度量主要分为两种类型,外部指标:将聚类结果与某个“参考模型”进行比较,称为“外部指标”。内部指标:直接考察聚类结果而不利用任何原创 2017-02-24 19:10:25 · 2217 阅读 · 0 评论 -
聚类算法之总结
前面的博文已经大致将基本的聚类算法学习了一遍,聚类算法学习这个专题基本就告一段落了,其实好多东西还是没有涉及: (1)高维数据聚类:子空间聚类、维规约聚类(PCA) (2)图聚类 (3)并行聚类算法 。。。。。。 这些高级聚类分析,以后会再做专题进行学习。现在做一个简单的总结。如果有什么不对的地方,欢迎大家批评指正。原创 2017-02-28 19:55:41 · 1173 阅读 · 0 评论 -
基于概率模型的聚类
基于概率模型的聚类我们之所以在数据集上进行聚类分析,是因为我们假定数据集中的对象属于不同的固有类别。即聚类分析的目的就是发现隐藏的类别。从统计学上讲,我们可以假定隐藏的类别是数据空间的一个分布,可以使用不同的概率密度函数(或者分布函数)进行精确的表示。我们称这种隐藏的类别为概率簇。对于一个概率簇C,它的密度函数f和数据空间的点o, f(o)是C的一个实例在o上出现的相对似然。假设我们想原创 2017-02-28 17:21:34 · 8235 阅读 · 0 评论 -
模糊聚类分析之基础
本篇博文主要讲解一下模糊聚类的相关内容。在讲解模糊聚类之前,先把模糊数学中几个我们主要用到的公式讲一下。(1)模糊矩阵的交,并,余,转置操作(2)模糊矩阵的乘法。 对于模糊矩阵的乘法,可能有点不明白。看下图就差不多明白了。第一行X第一列:0.7X0.9最大,取较小的0.7第一行X第二列:0.3X0.9最大,取较小的0.3原创 2017-02-28 14:42:15 · 11241 阅读 · 1 评论 -
网格聚类算法(三)
CLIQUE:一种类似于Apriori的子空间聚类算法 CLIQUE算法是基于网格的空间聚类算法,但它同时也非常好的结合了基于密度的聚类算法,因此既能够发现任意形状的簇,又可以像基于网格的算法一样处理较大的多维数据。CLIQUE算法把每个维划分成不重叠的社区,从而把数据对象的整个嵌入空间划分成单元,它使用一个密度阈值来识别稠密单位,一个单元是稠密的,如果映射到它的对象超过密度阈值。原创 2017-02-27 20:53:18 · 12342 阅读 · 1 评论 -
网格聚类算法(一)
基于网格的聚类算法前面的博文已经将划分、层次、密度的聚类算法讲了一下,接下来就是网格的方法。聚类算法很多,其中一大类传统的聚类算法是基于距离的,这种基于距离的聚类算法只能发现球状簇、处理大数据集以及高维数据集时,不够有效。另一方面发现的聚类个数往往依赖于用户参数的指定。这对用户来说是非常困难的。基于网格的聚类算法将空间量化为有限数目的单元,形成一个网格结构,所有聚类都在网格原创 2017-02-27 17:15:46 · 20841 阅读 · 0 评论 -
支持向量机算法
支持向量机 支持向量机是一种二类分类模型。其基本模型为定义在特征空间上的间隔最大的线性分类器,间隔最大是它有别有感知机。支持向量机还包括核技巧,使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,形式的化为求解凸二次规划问题,也等价于正则化的和业务损失函数的最小化问题。 支持向量机学习算法模型分类: (1)线性可分支持向量机。当训练集线性可分的时候,通过硬间原创 2017-03-13 22:25:02 · 15918 阅读 · 0 评论