聚类

数据分析之体会

假如想象 提交于 2020-01-26 19:42:17
就数据分析职业来说,个人感觉这对互联网公司来说是非常重要的,也是确实能够带来实际效果的东西。比如说利用数据分析做会员的细分以进行精准化营销;利用 数据分析来发现现有的不足,以作改进,让顾客有更好的购物体验;利用CRM系统来管理会员的生命周期,提高会员的忠诚度,避免会员流失;利用会员的购买数 据,挖掘会员的潜在需求,提供销售,扩大影响力等等。 最开始进公司的时候是在运营部,主要是负责运营报表的数据,当时的系统还很差,提取数据很困难,做报表也很难,都是东拼西凑一些数据,然后做成PPT,记 得当时主要的数据就是销售额、订单量、毛利额、客单价、每单价、库存等一些特别基础的数据,然后用这些数据作出一些图表来。在这个阶段基本上就是做一些数 据的提取工作,Excel的技巧倒是学到了不少,算是数据分析入门了吧。 后来公司上了数据仓库,里面就有了大量的原始数据,提取数据非常方便了,而且维度也多,可以按照自己的想法随意的组合分析,那个阶段主要就是针对会员购物 行为的分析,开始接触数据建模,算法等一些比较难的东西,也是学到东西最多的时候。记得当时做了很多分析报告,每周还要给总裁办汇报这些报告,下面详细说 一下当时使用的一些主要的模型及算法: 1、 RFM模型 模型定义:在众多的客户关系管理的分析模式中,RFM模型是被广泛提到的。RFM模型是衡量客户价值和客户创利能力的重要工具和手段。该机械模型通过一个

数据挖掘概念与技术第三版第一章答案

跟風遠走 提交于 2020-01-25 22:03:17
第一章答案 该答案为本人转载 ,原著[Ma_Jack](https://blog.csdn.net/u013272948/article/details/71024949) 1.1 什么是数据挖掘?在你的回答中,强调以下问题: (a)它是又一种广告宣传吗? (b)它是一种从数据库、统计学、机器学习和模式识别发展而来的技术的简单转换或应用吗? (c)我们提出了一种观点,说数据挖掘是数据库技术进化的结果。你认为数据挖掘也是机器学习研究进化的结果吗?你能基于该学科的发展历史提出这一观点吗?针对统计学和模式识别领域,做相同的事。 (d)当把数据挖掘看做知识发现过程时,描述数据挖掘所涉及的步骤。 数据挖掘不是一种广告宣传,它是一个应用驱动的领域,数据挖掘吸纳了诸如统计学习、机器学习、模式识别、数据库和数据仓库、信息检索、可视化、算法、高性能计算和许多应用领域的大量技术。它是从大量数据中挖掘有趣模式和知识的过程。数据源包括数据库、数据仓库、Web、其他信息存储库或动态的流入系统的数据等。当其被看作知识发现过程时,其基本步骤主要有:(1).数据清理:清楚噪声和删除不一致数据;(2).数据集成:多种数据源可以组合在一起;(3).数据选择:从数据库中提取与分析任务相关的数据;(4).数据变换:通过汇总或者聚集操作,把数据变换和统一成适合挖掘的形式;(5).数据挖掘

聚类分析在市场细分中的应用

别等时光非礼了梦想. 提交于 2020-01-25 18:25:57
聚类分析在市场细分中的应用 市场细分的含义 市场细分(market segmentation)是指营销者通过市场调研,依据消费者的需要和欲望、购买行为和购买习惯等方面的差异,把某一产品的市场整体划分为若干消费者群的市场分类过程。每一个消费者群就是一个细分市场,每一个细分市场都是具有类似. 市场细分的含义市场细分(market segmentation)是指营销者通过市场调研,依据消费者的需要和欲望、购买行为和购买习惯等方面的差异,把某一产品的市场整体划分为若干消费者群的市场分类过程。每一个消费者群就是一个细分市场,每一个细分市场都是具有类似需求倾向的消费者构成的群体。市场细分的程序 调查阶段 分析阶段 细分阶段 细分消费者市场的基础 地理细分:国家、地区、城市、农村、气候、地形 人口细分:年龄、性别、职业、收入、教育、家庭人口、家庭类型、家庭生命周期、国籍、民族、宗教、社会阶层 心理细分:社会阶层、生活方式、个性 行为细分:时机、追求利益、使用者地位、产品使用率、忠诚程度、购买准备阶段、态度。 市场细分研究的应用价值 谁是购买者和谁是潜在购买者? 市场细分根据消费者对不同产品的不同偏好 分析 ,从而确定对于特定产品,那些人是最主要的购买者和那些人有最可能成为购买者。 提供的产品是否满足了消费者的需求? 市场细分首先了解不同消费群体的不同偏好,从而相应挖掘出哪些偏好是您产品能满足的

基于密度聚类的DBSCAN和kmeans算法比较

会有一股神秘感。 提交于 2020-01-22 21:38:44
根据各行业特性,人们提出了多种聚类算法,简单分为:基于层次、划分、密度、图论、网格和模型的几大类。 其中,基于密度的聚类算法以DBSCAN最具有代表性。 场景 一 假设有如下图的一组数据, 生成数据的R代码如下 x1 <- seq(0,pi,length.out=100) y1 <- sin(x1) + 0.1*rnorm(100) x2 <- 1.5+ seq(0,pi,length.out=100) y2 <- cos(x2) + 0.1*rnorm(100) data <- data.frame(c(x1,x2),c(y1,y2)) names(data) <- c('x','y') qplot(data$x, data$y) 用密度聚类DBSCAN方法,可以看到聚类效果如下: library(ggplot2) p <- ggplot(data,aes(x,y)) library('fpc') model2 <- dbscan(data,eps=0.6,MinPts=4) p + geom_point(size=2.5, aes(colour=factor(model2$cluster)))+theme(legend.position='top') 同样,请读者看下k-means的聚类效果。 # 用K均值聚类 model1 <- kmeans(data,centers=2

半监督学习

无人久伴 提交于 2020-01-22 21:11:26
概述 监督学习指的是训练样本包含标记信息的学习任务,例如:常见的分类与回归算法; 无监督学习则是训练样本不包含标记信息的学习任务,例如:聚类算法。 在实际生活中,常常会出现一部分样本有标记和较多样本无标记的情形,例如:做网页推荐时需要让用户标记出感兴趣的网页,但是少有用户愿意花时间来提供标记。若直接丢弃掉无标记样本集,使用传统的监督学习方法,常常会由于训练样本的不充足,使得其刻画总体分布的能力减弱,从而影响了学习器泛化性能。那如何利用未标记的样本数据呢? 以下参考博客:https://blog.csdn.net/u011826404/article/details/74358913 未标记样本 1.基本假设 (原文:https://blog.csdn.net/hellowuxia/article/details/66473252 ) 要利用未标记样本,必然要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。 1)平滑假设(Smoothness Assumption):位于稠密数据区域的两个距离很近的样例的类标签相似,也就是说,当两个样例被稠密数据区域中的边连接时,它们在很大的概率下有相同的类标签;相反地,当两个样例被稀疏数据区域分开时,它们的类标签趋于不同。 2) 聚类假设 (Cluster Assumption):当两个样例位于同一聚类簇时

半监督学习

人盡茶涼 提交于 2020-01-22 21:08:59
下面这篇文章摘自 Liqizhou 的随笔,我觉得它非常清楚地概述了半监督学习,值得收藏。 原文地址:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2496155.html 最近的一段时间一直在学习半监督学习算法,目前,国内的南京大学周志华老师是这方面的泰斗,写了很多这方面牛的文章,可以参考一下他的主页: http://cs.nju.edu.cn/zhouzh/ 。在国内的学术界周老师一直是我比较钦佩的人之一。下面贴出来的文章出自周老师之手,通俗易懂。受益匪浅。。 1. 引言 在传统的监督学习中,学习器通过对大量有标记的(labeled)训练例进行学习,从而建立模型用于预测未见示例的标记。这里的“标记”(label)是指示例所对应的输出,在分类问题中标记就是示例的类别,而在回归问题中标记就是示例所对应的实值输出。随着数据收集和存储技术的飞速发展,收集大量未标记的(unlabeled)示例已相当容易,而获取大量有标记的示例则相对较为困难,因为获得这些标记可能需要耗费大量的人力物力。例如在计算机辅助医学图像分析中,可以从医院获得大量的医学图像作为训练例,但如果要求医学专家把这些图像中的病灶都标识出来,则往往是不现实的。事实上,在真实世界问题中通常存在大量的未标记示例,但有标记示例则比较少,尤其是在一些在线应用中这一问题更加突出

浅谈数据挖掘

☆樱花仙子☆ 提交于 2020-01-21 14:06:56
数据挖掘其实是一种深层次的数据分析方法。数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。 应用的技术包括:数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面。 数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先知,有效和可实用三个特征。 数据挖掘的目标是 从数据库中发现隐含的、有意义的知识,主要有以下五类功能。 1.自动预测趋势和行为数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。 2.关联分析数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。 3.聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。 4.概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。 5.偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。 数据挖掘技术包括关联分析、序列分析、分类、预测、聚类分析及时间序列分析等。 1.关联分析主要用于发现不同事件之间的关联性

机器学习task_05聚类

一个人想着一个人 提交于 2020-01-21 09:15:00
1.相关概念(无监督学习、聚类的定义) 2.性能度量(外部指标、内部指标) 3.距离计算 4.原型聚类 K均值 LVQ 5.高斯混合聚类 层次聚类 AGNES 自顶而下 6.密度聚类 DBSCAN 其他密度聚类算法 7.优缺点 8.sklearn参数详解  聚类分析是按照个体的特征将他们分类,让同一个类别内的个体之间具有较高的相似度,不同类别之间具有较大的差异性 聚类分析属于无监督学习 聚类对象可以分为Q型聚类和R型聚类 Q型聚类:样本/记录聚类 以距离为相似性指标 (欧氏距离、欧氏平方距离、马氏距离、明式距离等) R型聚类:指标/变量聚类 以相似系数为相似性指标 (皮尔逊相关系数、夹角余弦、指数相关系数等) 二、常用的聚类算法 K-Means划分法 层次聚类法 DBSCAN密度法 1、K-Means划分法 K表示聚类算法中类的个数,Means表示均值算法,K-Means即是用均值算法把数据分成K个类的算法。 K-Means算法的目标,是把n个样本点划分到k个类中,使得每个点都属于离它最近的质心(一个类内部所有样本点的均值)对应的类,以之作为聚类的标准。 算法原理见 http://www.aboutyun.com/thread-18178-1-1.html【转】 K-Means算法的计算步骤 取得k个初始质心:从数据中随机抽取k个点作为初始聚类的中心,来代表各个类

使用高斯混合模型进行聚类

萝らか妹 提交于 2020-01-21 03:48:26
如下图所示是600个数据点: 生成模拟数据 import numpy as np import pandas as pd import matplotlib . pyplot as plt from sklearn . mixture import GaussianMixture n_samples = 300 # generate random sample, two components np . random . seed ( 0 ) # generate spherical data centered on (4, 4) shifted_gaussian = np . random . randn ( n_samples , 2 ) + np . array ( [ 4 , 4 ] ) # generate zero centered stretched Gaussian data C = np . array ( [ [ 0 . , - 0.7 ] , [ 3.5 , .7 ] ] ) stretched_gaussian = np . dot ( np . random . randn ( n_samples , 2 ) , C ) # concatenate the two datasets into the final training set X_train =

聚类算法(二)

北城以北 提交于 2020-01-19 20:31:45
7.算法优化 k-means算法小结 优点: 1.原理简单(靠近中心点),实现容易 2.聚类效果中上(依赖k的选择) 3.空间复杂度o(N), 时间复杂度o(I K N) 缺点: 1.对离群点,噪声敏感 2.很难发现大小差别很大的簇及进行增量计算 3.结果不一定是全局最优,只能保证局部最优(这个与K的个数和初值的选取有关) Canopy算法小结 优点: 1.K-means对噪声抗干扰弱,通过Canopy对比,将较小的NumPoing的Cluster直接去掉有利于抗干扰。 2.Canopy选择出来的k更精准 3.只是针对每个Canopy的内做K-means聚类,减少相似计算的数量 缺点: 算法中T1、T2的确定问题,依然可能落入局部最优解 K-means++ kmeans++目的,让选择的质心尽可能的分散 二分k-means 1.所有点作为一个簇 2.将该簇1分为2 3.选择能最大限度降低聚类代价函数(也就是误差平方和)的簇划分为两个簇 4.重复进行,知道簇的数目等于用给定的数目k为止 隐含的一个原则: 因为聚类的误差平方和能够衡量聚类性能,则该值越小表示数据点越接近质心,聚类效果越好。所以需要对误差平方和最大的簇再进行一次划分,因为误差平方和越大, 表示该簇聚类效果越不好,越有可能是多个簇被当成了一个簇,所以我们首先需要对这个簇进行划分。 二分K均值算法可以加速k