数据挖掘
一、数据挖掘的定义
数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,做出归纳性的推理,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,做出正确的决策。
1. 技术上的定义
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。
2. 商业角度的定义
数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。因此,数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。
二、数据挖掘的主要工作流程
1. 理解业务
从商业的角度理解项目目标和需求,将其转换成一种数据挖掘的问题定义,设计出达到目标的一个初步计划。
2. 理解数据
收集初步的数据,进行各种熟悉数据的活动。包括数据描述,数据探索和数据质量验证等。
3. 准备数据
将最初的原始数据构造成最终适合建模工具处理的数据集。包括表、记录和属性的选择,数据转换和数据清理等。
4.建模
选择和应用各种建模技术,并对其参数进行优化。
5.模型评估
对模型进行较为彻底的评价,并检查构建模型的每个步骤,确认其是否真正实现了预定的商业目的。
6.模型部署
创建完模型并不意味着项目的结束,即使模型的目的是为了增进对数据的了解,所获得的知识也要用一种用户可以使用的方式来组织和表示。通常要将活动模型应用到决策制订的过程中去。该阶段可以简单到只生成一份报告,也可以复杂到在企业内实施一个可重复的数据挖掘过程。控制得到普遍承认。
机器学习
一、机器学习的定义
机器学习领域知名学者Tom M.Mitchell曾给机器学习做如下定义:
如果计算机程序针对某类任务T的性能(用P来衡量)能通过经验E来自我改善,则认为关于T和P,程序对E进行了学习。
机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。
也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。
机器学习的概念就是通过输入海量训练数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类或预测。
二、机器学习的分类
根据是否在人类的监督下进行学习这个问题,机器学习任务区分如下:
监督学习:监督学习算法依赖具有标签的训练数据来建立数学模型。例如,如果任务是鉴定图片是否包含某种实体,那么训练集的图片中就应该同时存在包含与不包含该实体的图片,同时,每张图片需标注是否包含该实体的标签。根据标签的数值特征(连续、离散),监督学习又可以分为分类问题与回归问题。
半监督学习:在某些情况下,并不是所有的输入数据集都被有效标注了,即训练集中包含已标注的样本和未标注的样本。实际上未标注样本与已标注样本拥有同样的分布,在训练时若能利用这一点,则会很有帮助。
无监督学习:无监督学习算法完全利用不带标签的训练数据去训练一个模型。无监督学习用于探索数据的分布,例如将点聚类等。无监督学习可用于发现数据的潜在模式,并将数据按组归类,还可用于特征学习和数据降维等。
强化学习:在动态环境中以正或负强化的形式给出反馈,并用于自动驾驶车辆,或者学习与人类对手玩游戏等。
三、机器学习的主要工作流程
机器学习的流程本质上就是数据准备、数据分析、数据处理、结果反馈的过程,按照这个思路,我们可以把机器学习分为如下步骤:业务场景分析、数据处理、特征工程、算法模型训练、应用服务。下面具体介绍一下这几个步骤。
1. 业务场景分析
业务场景分析就是将我们的业务需求、使用场景转换成机器学习的需求语言,然后分析数据,选择算法的过程。这个是机器学习的准备阶段,主要包括:业务抽象、数据准备、选择算法。
2. 数据处理
数据处理就是数据的选择和清洗的过程,数据准备好后,确定了算法,确定了需求,就需要对数据进行处理,数据处理的目的就是尽可能降低对算法的干扰。在数据处理中我们会经常用到“去噪”和“归一”。
去噪就是去除数中干扰的数据,也就是说你的数据案例中存在特别情况的,或者是不正常的数据,一方面要求我们产品经理拿到的数据是反映真实世界的数据,一方面我们通过算法可以识别干扰的数据。
归一就是将数据进行简化,一般将数据简化在【0,1】,数据归一化主要是帮助算法能够很好的寻找最优解。
3. 特征工程
在机器学习中有这么一种说法,数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限,数据和特征是算法模型的基础,所谓特征工程就是对处理完成后的数据进行特征提取,转换成算法模型可以使用的数据。
4.算法模型训练
特征数据准备完成后,即可根据具体任务选择合适的模型并进行训练。根据选择好的算法,进行训练与评估,通过算法训练得到算法模型,通过新数据测试完成模型质量的评估,若模型不满足要求,则需要对模型进行调整、训练、再评估,直至模型达到标准。
5. 应用服务
调优之后得到的最优模型一般会以文件的形式保存起来,以待应用时可直接加载使用。机器学习应用加载模型文件,将新样本的特征数据输入模型,由模型进行预测,得到最终预测结果。
数据挖掘与机器学习之间的关系
1.数据挖掘试图从海量数据中找出有用的知识,而机器学习是数据挖掘的重要工具。
2.数据挖掘不仅仅要研究、拓展、应用一些机器学习方法,还要通过许多非机器学习技术解决数据仓储、大规模数据、数据噪音等等更为实际的问题。
3.机器学习的涉及面更宽,常用在数据挖掘上的方法通常只是“从数据学习”,然则机器学习不仅仅可以用在数据挖掘上,一些机器学习的子领域甚至与数据挖掘关系不大,例如增强学习与自动控制等等。
4.数据挖掘可以视为机器学习和数据库的交叉,它主要利用机器学习界提供的技术来分析海量数据,利用数据库界提供的技术来管理海量数据。
5.机器学习可以从数据挖掘的结论中学习以适应未来事件的行为,数据挖掘发现的知识或规律通常用作机器学习的信息源
总结:机器学习为数据挖掘提供解决实际问题的方法,而数据挖掘是机器学习技术的一个实际应用,机器学习是数据挖掘的一种重要工具。