大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)
在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据高度自动化地分析,做出归纳性的推理,从中挖掘出潜在的模式,可以帮助企业、商家、用户调整市场政策、减少风险、理性面对市场,并做出正确的决策。目前,在很多领域尤其是在商业领域如银行、电信、电商等,数据挖掘可以解决很多问题,包括市场营销策略制定、背景分析、企业管理危机等。大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、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 ...
随机推荐
- 基于Air800+Arduino+ESP8266的混合物联网开发
流程图如下:
- python 如何写CMD命令工具
#-*- coding: UTF- -*- import argparse import sys: sys.argv.append('--help') parser = argparse.Argume ...
- thinkphp5报错
thinkPHP5配置nginx环境无法打开(require():open_basedirrestrictionineffect.File(/mnt/hgfs/ro (2018-07-19 22:05 ...
- ThreadLocal变量
什么是ThreadLocal变量?ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多.可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副 ...
- Java超类-java.lang.object
Java是面向对象的,Object是所有对象的超类(不是继承,也不是实现接口) Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 如 ...
- Eclipse Job
Job可以我们基于Eclipse的Java程序中,我们有很多种方式提供多任务的实现.熟悉Java的朋友立即会想到Java的Thread类,这是Java中使 用最多的一个实现多任务的类.Eclipse平 ...
- 【CF912E】Prime Game(meet in the middle)
[CF912E]Prime Game(meet in the middle) 题面 CF 懒得翻译了. 题解 一眼题. \(meet\ in\ the\ middle\)分别爆算所有可行的两组质数,然 ...
- Python 线程同步
#-*-coding:utf-8-*- '''如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性, 需要对多个线程进行同步. 线程同步所使用的的方法: Lock RLock ...
- java同步代码(synchronized)中使用BlockingQueue
说起BlockingQueue,大家最熟悉的就是生产者-消费者模式下的应用.但是如果在调用queue的上层代码加了同步块就会导致线程死锁. 例如: static BlockingQueue<St ...
- Pair_2测试与优化
# Pair_2测试与优化 211606316李震 21160305胡彤 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分 ...