在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据高度自动化地分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域如银行、电信、电商等,数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等。这些方法从不同的角度对数据进行挖掘。
数据准备的重要性:没有高质量的挖掘结果,数据准备工作占用的时间往往在60%以上。
(1)分类。分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从而增加商铺的销售量。
分类的方法:决策树——是最流行的分类方法
特点:
a、它的每次划分都是基于最显著的特征的;
b、所分析的数据样本被称作树根,算法从所有特征中选出一个最重要的,用这个特征把样本分割成若干子集;
c、重复这个过程,直到所有的分支下面的实例都是“纯”的,即子集中各个实例都属于同一个类别,这样的分支即可确定为一个叶子节点。在所有子集变成“纯”的之后,树就停止生长了。
决策树的剪枝:
a、如果决策树建的过深,容易导致过度拟合问题(即所有的分类结果数量基本一样,没有代表性);
b、剪枝通常采用自上而下的方式。每次找出训练数据中对预测精度贡献最小的那个分支,剪掉它;
c、简言之,先让决策树疯狂生长,然后再慢慢往回收缩。整体上往回收缩多少,要根据在测试集上的表现来反复尝试。
(2)回归分析。回归分析反映了数据库中数据的属性值的特性,通过函数表达数据映射的关系来发现属性值之间的依赖关系。它可以应用到对数据序列的预测及相关关系的研究中去。在市场营销中,回归分析可以被应用到各个方面。如通过对本季度销售的回归分析,对下一季度的销售趋势作出预测并做出针对性的营销改变。
分类的方法:逻辑回归——是一种常用的分类方法,非常成熟,应用非常广泛
特点:
a、回归不只可以用于分类,也能用于发现变量间的因果关系;
b、最主要的回归模型有多元线性回归和逻辑回归;
c、有些时候逻辑回归不被当作典型的数据挖掘算法。
逻辑回归的步骤:
a、先训练,目的是找到分类效果最佳的回归系数;
b、然后使用训练得到的一组回归系数,对输入的数据进行计算,判定它们所属的类别
逻辑回归模型的检验:
由于希望模型中的输入变量与目标变量之间的关系足够强,为此需要做两个诊断:
a、对模型整体的检验——R2,即全部输入变量能够解释目标变量变异性的百分之多少。R2越大,说明模型拟合得越好;如果R2太小,则模型不可用于预测。
b、回归系数的显著性(p-value),如果某个输入变量对目标变量的作用p-value小于0.05,则可以认为该输入变量具有显著作用。对不显著的输入变量可以考虑从模型中去掉。
决策树与逻辑回归的比较:
1、决策树由于采用分割的方法,所以能够深入数据细部,但同时失去了对全局的把握。一个分支一旦形成,它和别的分支或节点的关系就被切断,以后的挖掘只能在局部中行;
2、逻辑回归始终着眼于整数数据的拟合,所以对全局模式把握较好;
3、决策树比较容易上手,需要的数据预处理较少;
4、逻辑回归模型不能处理缺失值,而且对异常值敏感。因此回归之前应该处理缺失值,并尽量删除异常值
分类和回归分析被称为有监督学习:
1、有标识;
2、通过模仿做出正确分类的已有数据,从而能够对新的数据做出比较准确的分类。这就像教小孩学习一样。
(3)聚类。聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。
(4)关联规则。关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM 机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。
聚类和关联规则被称为无监督学习:
1、无标识;
2、聚类:针对客户特征进行客户群划分。由此,我们可以对不同客户群采取差异化的促销方式;
3、关联规则:分析发现购买面包的顾客中有很大比例的人同时购买牛奶,由此我们可以将牛奶与面包放在同一个地方。
(5)神经网络方法。神经网络作为一种先进的人工智能技术,因其自身自行处理、分布存储和高度容错等特性非常适合处理非线性的以及那些以模糊、不完整、不严密的知识或数据为特征的处理问题,它的这一特点十分适合解决数据挖掘的问题。典型的神经网络模型主要分为三大类:第一类是以用于分类预测和模式识别的前馈式神经网络模型,其主要代表为函数型网络、感知机;第二类是用于联想记忆和优化算法的反馈式神经网络模型,以Hopfield 的离散模型和连续模型为代表。第三类是用于聚类的自组织映射方法,以ART 模型为代表。虽然神经网络有多种模型及算法,但在特定领域的数据挖掘中使用何种模型及算法并没有统一的规则,而且人们很难理解网络的学习及决策过程。
(6)Web数据挖掘。Web数据挖掘是一项综合性技术,指Web 从文档结构和使用的集合C 中发现隐含的模式P,如果将C看做是输入,P 看做是输出,那么Web 挖掘过程就可以看做是从输入到输出的一个映射过程。
当前越来越多的Web
数据都是以数据流的形式出现的,因此对Web
数据流挖掘就具有很重要的意义。目前常用的Web数据挖掘算法有:PageRank算法,HITS算法以及LOGSOM
算法。这三种算法提到的用户都是笼统的用户,并没有区分用户的个体。目前Web
数据挖掘面临着一些问题,包括:用户的分类问题、网站内容时效性问题,用户在页面停留时间问题,页面的链入与链出数问题等。在Web
技术高速发展的今天,这些问题仍旧值得研究并加以解决。
大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)的更多相关文章
-
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
-
【ArchSummit干货分享】个推大数据金融风控算法实践
作者:个推高级数据工程师 晓骏 众所周知,金融是数据化程度最高的行业之一,也是人工智能和大数据技术重要的应用领域.随着大数据收集.存储.分析和模型技术日益成熟,大数据技术逐渐应用到金融风控的各个环节. ...
-
【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)
原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...
-
入门大数据---SparkSQL常用聚合函数
一.简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSe ...
-
入门大数据---Hive常用DML操作
Hive 常用DML操作 一.加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename ...
-
大数据 -->; 一致性Hash算法
一致性Hash算法 一致性Hash算法(Consistent Hash)
-
大数据 - spark-sql 常用命令
--spark启动 spark-sql --退出 spark-sql> quit; --退出spark-sql or spark-sql> exit; 1.查看已有的database sh ...
-
大数据-Hive 常用命令
Hive 启动 ~$ hive 退出 hive>quit; --退出hive or hive> exit; --exit会影响之前的使用,所以需要下一句kill掉hadoop的进程 > ...
-
大数据学习——flume日志分类采集汇总
1. 案例场景 A.B两台日志服务机器实时生产日志主要类型为access.log.nginx.log.web.log 现在要求: 把A.B 机器中的access.log.nginx.log.web.l ...
随机推荐
-
「2014-2-8」Reading a blog on the pain points of Global Variables of C language
晚上读到一篇<C 语言全局变量那些事儿>.我先前对链接的理解不深,算是涨了一番姿势.此文吐槽的重点,是「非 static 限定的全局变量」带来的看似出人意料(实则可以被合理解释)的行为.虽 ...
-
ADO.NET学习系列(一)
一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的 ...
-
Java Socket常见异常处理 和 网络编程需要注意的问题
在java网络编程Socket通信中,通常会遇到以下异常情况: 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发 ...
-
GET POST 区别详解
Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2. Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而 ...
-
PS太大GIMP可用
图片处理中Photoshop用的非常多,但是该软件过于臃肿,使用起来也非常复杂,对于一般性的图片处理,有没有其他可以选择的工具呢? GIMP是GNU Image Manipulation Progra ...
-
前言(Core Data 应用开发实践指南)
Core Data 并不是数据库,它其实是一个拥有多种功能的框架.其中,有个功能是把程序与数据库之间的交互过程自动化,不用再编写SQL代码,改用Objective-C对象来实现. Core Data ...
-
在vue2.0中使用sass
第一步:使用sass必须安装下面三个东西 cnpm install node-sass --save //安装node-sass cnpm install sass-loader --save //安 ...
-
Ocelot中文文档-管理
Ocelot支持在运行时通过一个认证的Http API修改配置.有两种方式对其验证, 使用Ocelot的内置IdentityServer(仅用于向管理API验证请求)或将管理API验证挂接到您自己的I ...
-
Android 进度条按钮实现(ProgressButton)
有些App在点击下载按钮的时候,可以在按钮上显示进度,我们可以通过继承原生Button,重写onDraw来实现带进度条的按钮. Github:https://github.com/imcloudflo ...
-
微信小程序 - cb回调(typeof cb == ";function"; &;&; cb(obj);)
typeof cb == "function" && cb(obj) 但凡用了Promise,这种方式就可以抛弃了. Page({ data: {}, onLoad ...