来源:木木自由(公号)
数据挖掘应该是从收集到的数据中总结一系列的规律,为之后的事务提供坚实的保障和有力的指导,即释放数据价值。所以,数据挖掘的根本问题不是数据挖掘,而是提供保障甚至是直接的盈利手段。
从数据中总结规律的手段,分为两大类:
第一大类:依靠人的理解能力进行经验的归纳。简单的数据汇总、统计学分析、专家评价等等,这种方法归纳出的规律,是存储在人脑里面的,至少他是可以被人短时间内理解的;
第二大类:依靠计算机的运算能力进行经验的总结。这一类总结的经验不是存储在人脑里面,而是储存在计算机内(或者云上的),他们无法被人短时间内理解他们的具体细节,但是它们能够快速的给出指导性的意见(就是直接输出某种结果),这一类就是你问题之中提到的各种传统的机器学习算法,各种神经网络模型。
具体如下:
1、描述性的报表统计分析,大到国家统计局、小到打工人的日常工作,都可以对于已经发生的事务所产生的数据进行一下总结,归纳其中规律,找到哪些点可以改善。
2,通过数学模型模拟某种事务,这种区别于简单统计学分析,也区别于机器学习和深度学习算法。他是通过将某件事进行简化或者抽象,变成一种数学模型,然后都通过研究这种数学模型来找到具体事件背后的规律,例如,大量的经济学模型,今年初预测新冠传染人数的传染病模型,金融证券领域一些传统模型,还有一些基于数学建模的排班制度制定等等,甚至一些具体的理工学科的公式(力学、热力学、流体力学等等等)本质上都属于这一类。
3,基于传统机器学习模型的数据挖掘,通常用来分析二维的结构化数据(行代表样本,列代表特征),可以直接得到对未来事务的指导,而不必理解模型的具体细节。通常都是通过模型训练时的某些XX率(准确率、精确率、召回率、F1-score)或者各种损失函数值来判断模型对于未来事务的指导是否有效。这里有一个问题,每种算法和模型的适用范围都有它的局限性,他们的适用性往往不只是网上能够查到的“XXX算法的优缺点”能够概括的,需要对算法背后数学基础有一定的了解,才能够根据具体的情况选择适合的算法。
4,基于深度神经网络的数据挖掘,尝尝用来处理非结构化数据,比如,文本、语音、图片、视频等等,实际上理论不算很难,层出不穷的模型得益于各种精妙网络结构设计和计算用的硬件能力的长足发展。
关于数据挖掘,你了解多少?
数据挖掘更像是从荒凉的草原上收获美味的果实,而不是在广阔的矿山中寻找金矿。不知道有没有金脉,但草原上肯定有果实。然而在实际数据中,有很多神秘数据无法使用,也有很多数据不清楚这棵树是否真的结出可食用的果实。首先我们要清理草原,但是清理这片辽阔的草原需要很多时间。实际收获果实通常需要 80% 的时间。
Part1 什么是数据挖掘?
数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。
数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
数据挖掘是一种技术,例如可以基于对每个客户的深刻理解,在公司与客户之间形成长期良好关系的方法和策略。更具体地说可以说是分析公司收集的大量数据,发现有用的模式和规则,并支持营销活动的统计方法和工具的集合。
Part2 数据挖掘的2种方法是什么?
比较数据挖掘和统计分析的区别,数据挖掘是知识发现,统计分析是假设检验,但真的是这样吗?
假设检验(面向目标) 数据挖掘有一个客观变量来预测购买量和客户反应,并据此对客户进行分类。回归分析、决策树和神经网络等许多技术都用于有目的地构建模型。
知识发现(探索性)数据挖掘没有目标变量,试图从获得的数据中寻找有用的规则、模式、相似性等,作为一种典型的方法用于购物篮分析,属于关联分析。
在假设检验数据挖掘中,估计和理解是指估计和理解定量的数字,例如在什么地区销售什么样的产品,销售多少。分类提炼 是指将各个地区畅销的产品和产品类别进行提炼,分类整理后进行分析。这两个是为了正确识别当前的情况,但预测 不是当前的情况,而是通过创建某种模型来预测未来的销量和畅销产品。统计分析处理的数据量比较少,数据挖掘可能更多。数据挖掘也有知识发现的成分,但不是通过输入数据就能自动发现的。应该认识到数据挖掘有两种类型:不仅是知识发现,还有假设检验,就像统计分析一样。
另一方面,知识启发式数据挖掘 关联规则制定 是探索性地同时知道买了什么和买了什么。 聚类 是指根据购买趋势等对相似的人进行分组,并尝试对每个组实施最佳措施。由于这两种方法没有目标变量,所以它们对应于多元分析中的汇总方法,但也不是没有目标的。
聚类和分类的区别在于分组依据是基于预定义的属性、购买金额等,还是分组基于事后定义的探索性依据。分位分析、RFM 分析等是对客户进行分组的类似方法,但基于预定义的标准,例如购买数量和频率。在聚类分析中,由于某种原因,分组是任意的,并且在事后进行分析以了解组的特征,因此方法完全不同。
文本挖掘是一种具有代表性的 了解群体特征 的数据挖掘方法,用于假设检验和知识发现。文本挖掘可用于定性和定量地了解有目的所说的内容,或探索性地发现所说的内容。
这样就有了两种类型的数据挖掘:假设检验(面向目标)数据挖掘和知识发现(探索)数据挖掘。
Part3 数据挖掘的步骤?
1. 明确目标
在实施数据挖掘之前,你必须明白自己的目标,即需要通过挖掘去解决什么样的问题。
比如在餐饮行业,可能都会存在这方面的痛点,即如何调整中餐或晚餐的当班人数,以及为下一餐准备多少食材比较合理。如果解决了这个问题,那么对于餐厅来说既可以降低人工成本,又可以避免食材的浪费。
2. 数据搜集
当你明确自己的目标或需要解决的问题后,下一步就需要准备数据,准备的数据即可以影响到这些问题的解决办法,这一步成为数据搜集过程。数据搜集过程尤为重要,其决定了后期工作进展的顺利程度。
比如和餐饮相关的数据:
食材数据:食材名称,食材品类,采购时间,采购数量,采购金额,当天剩余量等。
经营数据:经营时间,预定时间,预定台数,预定人数,上座台数,上座人数等。
其他数据:天气情况,交通便捷性,竞争对手动向,是否为节假日,用户口碑等。
常用爬虫方法来搜集数据。
3. 数据清洗
通过数据搜集得到的相关数据必须保证“干净”,因为数据的质量高低将影响最终结果的准确性。通常数据会有以下几个方面影响数据的“干净”。
缺失值:由于个人隐私或设备故障导致某些观测在维度上的漏缺,一般称为缺失值。缺失值的存在可能会导致模型结果的错误,所以针对缺失值可以考虑删除法、替换法、插值法解决。
异常值:异常值一般指远离正常样本的观测点,它们的存在同样会影响模型的准确性,故可以考虑删除法或单独处理法。
数据的不一致性:主要是由于不同的数据源或系统并发不同步导致的数据不一致性,例如两个数据源中数据单位的不一致(一个以元为单位,一个以万元为单位);系统并发不同步导致一张电影票被多个用户购买。
量纲的影响:由于某些模型容易受到不同量纲的影响,因此需要通过数据的标准化方法将不同量纲的数据进行统一处理,如将数据集都压缩至0-1的范围。
维度灾难:当采集的数据包含上百乃至成千上万的变量时,往往会提高模型的复杂度,进而影响模型的运行效率,故需要采用方差分析法,相关系数法,递归特征消除法,主成分分析法等手段实现数据的特征提取或降维。
4. 构建模型
据不完全统计,建模前的数据准备将占整个数据挖掘流程80%左右的时间。接下来,在数据保证“干净”的前提下,需要考虑以什么样的模型能进行建模。
分类模型:逻辑回归,KNN,决策树等。
回归模型:线性回归,支持向量回归,岭回归等。
以上模型都是传统机器学习算法,当然,还可以通过神经网络实现分类或回归。
5. 模型评估
到此阶段,已经完成了数据挖掘流程中的绝大部分工作。并且通过数据得到解决问题的多个方案(模型),接下来要做的就是从这些模型中挑选出最佳的模型,主要目的就是让这个最佳的模型能够更好地反映数据的真实性。例如,对于预测或分类模型,即使在数训练集中的表现很好,但在测试集中结果一般,说明该模型存在过拟合现象。
6. 应用部署
通常,模型的构建和评估工作的完成,并不代表整个数据挖掘流程的结束,往往还需要最后的应用部署。尽管模型的构建和评估视数据挖掘工程师所擅长的,但是这些挖掘出来的模式或规律是给真正的业务方或客户服务的,故需要将这些模式重新部署到系统中。
|