| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 数据挖掘浅谈 -> 正文阅读 |
|
[人工智能]数据挖掘浅谈 |
作者介绍 @猫耳朵 专注于数据分析; “数据人创作者联盟”成员。 豆豆和花花开了一家鲜花店。豆豆跟花花说:“情人节快到了,咱店都需要准备哪类情人节花束?每类花束需要准备多少?……” 花花回答道,“根据顾客分类,大致分为自信示爱、甜蜜上心、星河挚爱等共8类。前三类去年卖地特别好,今年需要提供比上年多30%的花束,……”。 豆豆说:“鲜花的保质期特别短,所以,多购买的鲜花只能从30%降至10%,既可以控制成本,又可以积攒口碑。……” 在上面案例中,花花制定采购方案首先进行顾客分类,在数据挖掘领域,可以使用无监督模型(例如k-means),也可以使用分类模型(例如KNN、决策树、逻辑回归等)将用户分群。花花预估“今年需要提供比上一年高30%的花束”,在数据挖掘领域,可以使用回归模型进行预测。 接下来,笔者就跟你浅谈一下数据挖掘。 01?机器学习与数据挖掘的区别与联系 1.1?概念 首先,我们对机器学习和数据挖掘的定义做一下总结: 数据挖掘是指从大量的、不完全的、有噪声的、模糊的、随机的数据中通过算法搜索隐藏于其中信息的过程。换句话说,数据挖掘试图从海量数据中找到有用的信息。 机器学习是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。也就是说,机器学习就是将现实生活中的问题抽象成数学模型,利用数学方法对这个数学模型进行求解,从而解决现实生活中的问题。 1.2?联系与区别 1.2.1 联系 数据挖掘受到很多学科领域的影响,其中包括数据库、机器学习、统计学、领域知识及模式识别等领域。简而言之,对于数据挖掘,数据库提供数据存储技术,机器学习和统计学提供数据分析技术。 统计学经常忽视实际的效用醉心于理论的优美,因此,统计学提供的大部分技术都要在机器学习领域进一步研究,变成机器学习算法后才能进入数据挖掘领域。从这方面来讲,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑。 简言之,机器学习为数据挖掘提供解决实际问题的方法,数据挖掘中算法的成功应用,说明了机器学习对算法的研究具有实际运用价值。 1.2.2 区别 从数据分析来讲,大多数数据挖掘技术都是来自于机器学习,但是机器学习研究不把海量数据作为处理对象,因此,数据挖掘需要对算法进行改造,使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容——关联分析。 至于,数据挖掘和模式识别,从概念上区分,数据挖掘重在发现知识,模式识别重在认识事物。 简言之,机器学习注重相关机器学习算法的理论研究和算法提升,更偏向理论和学术;数据挖掘注重运用算法或者其他某种模式解决实际问题,更偏向实践和运用。 02?机器学习的分类 机器学习的方法是基于数据产生的“模型”的算法,也称为“学习算法”。机器学习方法包括有监督学习、无监督学习、半监督学习和强化学习。 2.1?有监督学习 有监督学习指对数据的若干特征与标签之间的关联性进行建模的过程。它的主要目标是从有标签的训练数据中学习模型,以便对未知或未来的数据做出预测。 以用户是否会复购鲜花为例,可以采用监督学习算法在打过标签的(正确标识是与否)数据上训练模型,然后用该模型来预测新用户是否属于粘性用户。 标签为离散值的监督学习任务称为「分类任务」,例如上述的用户是否会复购鲜花示例。常用的分类模型包括KNN、决策树、逻辑回归等。 标签为连续值的监督学习任务称为「回归任务」,例如根据历史数据预测未来的销售额。常用的回归模型为线性回归、非线性回归和岭回归等。 注意:机器学习领域的预测变量通常称为特征,而响应变量通常称为目标变量或标签。 2.1?无监督学习 无监督学习指对不带任何标签的数据特征进行建模,通常被看成是一种“让数据自己介绍自己”的过程。也就是说,用无监督学习,可以在没有目标变量或奖励函数的指导下,探索数据结构来提取有意义的信息。 这类模型包括「聚类任务」和「降维任务」。其中,聚类算法可以将数据分成不同的组别,而降维算法追求用更简洁的方式表现数据。 1.3?半监督学习 半监督学习方法介于有监督学习和无监督学习之间,通常在数据不完整时使用。 1.4?强化学习 强化学习不同于监督学习,它将学习看作是试探评价过程,以“试错”的方式进行学习,并与环境交互已获得奖惩指导行为,以其作为评价。也就是说,强调如何基于环境而行动,以取得最大化的预期利益。 此时,系统靠自身的状态和动作进行学习,从而改进行动方案以适应环境。 03?数据挖掘建模过程 从数据本身来考虑,数据挖掘建模过程通常需要有理解商业、理解数据、准备数据、建模型、评估模型和部署模型6个步骤。 3.1?理解商业 理解商业算是数据挖掘中最重要的一部分,在这个阶段我们需要明确商业目标、评估商业环境、确定挖掘目标以及产生一个项目计划。 简单地说,就是针对不同的业务场景,需要明白挖掘的目标是什么,需要达到什么样的效果。用大白话讲,就是你到底想干啥。 仍以鲜花店为例,为了提高销售额,店员可以帮助客户快速找到他感兴趣的花束,同时在保证用户体验的情况下,为其附加一个可接受的小饰品,比如花瓶、零食、香水等。 3.2?理解数据 数据是挖掘过程的“原材料”,在数据理解过程中我们需要了解都有哪些数据,这些数据的特征是什么,可以通过对数据进行描述分析得到数据的特点。其中,了解有哪些数据尤为重要,其决定了后期工作进展的顺利程度。 比如和花店有关的数据: 1)鲜花数据:鲜花名称、鲜花品类、采购时间、采购数量、采购金额等。 2)经营数据:经营时间、预定时间、预定品类、预定人数等。 3)其他数据:是否为节假日、用户口碑、竞争对手动向、天气情况等。 3.3?准备数据 在数据准备阶段我们需要对数据作出清洗、重建、合并等操作。选出要进行分析的数据,并对不符合模型输入要求的数据进行规范化操作。主要是为建模准备数据,可以从数据预处理、特征提取、特征选择等几方面出发,整理如下: 1)缺失值:由于个人隐私或设备故障导致某些观测值在某些纬度上的漏缺,通常称为缺失值。缺失值存在可能会导致模型结果的错误,所以针对缺失值可以考虑删除、众数或均值填充等解决。 2)异常值:由于远离正常样本的观测点,它们的存在同样会对模型的准确型造成影响。可以通过象限图或3sigma(正态分布)进行判断,如果是,可以考虑删除或单独处理。 3)量纲不一致:模型容易受到不同量纲的影响,因此需要通过标准化方法(通常采用归一化、Normalization之类的方法)将数据进行转换。 4)维度灾难:当数据集中包含上百乃至上千万的变量时,往往会提高模型的复杂度,从而影响模型的运行效率,所以需要采用方差分析、相关分析、主成分分析等手段实现降维。 3.4?建模型 一般情况下,预处理将占整个数据挖掘流程80%左右的时间。在保证数据“干净”的前提下,需要选出合适的模型。以下是常用的机器算法。 1)分类模型:KNN、决策树、逻辑回归等。 2)回归模型:线性回归、岭回归、支持向量回归等。 3)无监督模型:k-means等。 数据挖掘中大部分模型都不是专为解决某个问题而特制的,模型之间相互不排斥。不能说一个问题只能采用某个模型,其他的都不能用。通常来说,针对某个数据分析项目,并不存在所谓的最好的模型,在最终决定选择哪种模型之前,各种模型都尝试一下,然后再选取一个较好的。各种模型在不同的环境中,优劣会有所不同。 3.5?评估模型 评估阶段主要是对建模结果进行评估,目的是选出最佳的模型,让这个模型能够更好地反映数据的真实性。并不是每一次建模都能符合我们的目标,对效果较差的结果分析原因,偶尔也会返回前面的步骤对挖掘过程重新定义。 比如,对于决策树或者逻辑回归,即使在训练集中表现良好,但在测试集中结果较差,说明该模型存在过拟合。 3.6?模型部署 建立的模型需要解决实际的问题,它还包括了监督、产生报表和重新评估模型等过程。很多时候建模一般使用spss、python、r等,在建模的过程中只考虑模型的可用性,在生产环境中通常会利用Java或C++等语言将模型改写,从而提高运行性能。 预祝大家情人节快乐! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:42:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |