数据挖掘:R语言实战|1 数据挖掘与R语言概述
专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。
【R语言】开通了R语言群,大家相互学习和交流,请扫描下方二维码,备注:姓名-R群,我会邀请你入群,一起进步和成长。
我是一名数据矿工,使用R语言及关联技术做数据挖掘的事情。
我写《数据挖掘:R语言实战》专栏,原因有三:
第一,对自己一直学习和实践的数据挖掘和R语言做个知识整理和总结。
第二,我喜欢写点东西,这个专栏也属于我所要写的主题之一。
第三,我希望能够给R语言和数据挖掘有需求的朋友有点帮助和作用。
同时,我希望这个专栏,能够实现三个目标:
第一,能够体会到数据挖掘和R语言的价值。
第二,能够灵活应用数据挖掘和R语言从数据中学习。
第三,能够实现自学习。
第一篇,我想说说数据挖掘与R语言概述。
看到这个标题,朋友们,会想到什么?
让我们一起想想如下问题:
1 数据挖掘是什么?
2 为什么要数据挖掘?
3 数据挖掘关注那些问题?
4 数据挖掘如何创造价值?
5 数据挖掘工具有哪些?
6 R语言是什么?
7 为什么学习和使用R语言?
8 如何用R语言做数据挖掘?
9 R语言做数据挖掘的优势和劣势?
等等
关于这些问题,我说下我的思考,同时,也请朋友们留言或者加入R语言群,参与讨论。顺便说一下,学习金字塔通过数据揭示了,教会他人学习,可以让你掌握95%你所要说的东西。
一、数据挖掘是什么?
这个问题,没有统一的定义。
我先引用三个关于这个问题的回答。
1 维基百科
“数据挖掘是在大型数据集中提取和发现模式的过程,会用到机器学习、统计和数据库系统的方法。”
2 IBM公司
“数据挖掘又称数据的知识发现(KDD),是从大数据集中发现模式和其它有价值信息的过程。”
3 SAS公司
“数据挖掘是在大数据集中发现异常、模式和相关性以预测结果的过程。”
从这三个回答中,我获得了这些启示。
首先,数据挖掘是一个过程,包括很多步骤。具体步骤和流程,我会在后续的数据挖掘标准和工作流中做介绍。当然,你也可以提前思考和阅读相关材料。
其次,数据挖掘的研究对象是数据集,或者说大型数据集,这是数据挖掘的“菜”。换而言之,若是没有数据,就不会有数据挖掘。因此,你要做数据挖掘,对数据的采集,理解、准备和品质等,都要重视。对数据认识的程度越深刻,就越有机会从里面淘到“金矿”。
第三,数据挖掘的目标是从数据中发现和提取有用的模式,这种模式可以是一种关系、或一组规则、或一个式子(等式|不等式)等,以利用这些模式指导行动以创造价值。
第四,数据挖掘的技术涉及多方面,比方说机器学习技术、统计学技术、数据库系统统计、模式识别技术和编程技术等,它是一个综合性学科和技术。
我说下自己的定义:
数据挖掘泛指从数据中学习以发现和提取模式用于创造价值的过程。
二、为什么要数据挖掘?
关于这个问题,我想每个人,都能够说出个一二三。简而言之,因为数据挖掘有用吧,所以我们要学习和使用它。这个回答没有错,若是我们继续思考,它为什么有用呢?俗话说,“时势造英雄”,“顺势而为”,“大势所趋”。我说下我的理解。
首先,我们身居数据时代,或者说大数据时代。我们既是数据的生产者,也是数据的消费者,面对数据的规模化、激增化、多样化和密度价值稀疏化,如何利用这些数据资源为人类谋福利,我们需要数据挖掘方法和技术。
其次,数据已经成为各家必争的重要资源,各国必重的生产要素。数据已经成为一种资产,对经济和社会有着巨大价值,如何让数据成为资产,如何让数据资产绿色化、健康化、持续化,我们需要数据挖掘方法和技术。
第三,公司胜出,个人出彩,核心竞争力有着功不可没的作用。现如今,数据挖掘已经成为公司或者个人的一种核心竞争力,鉴于此,我们需要数据挖掘方法和技术。
最后,公司要持续发展,需要创造价值,并且是可持续性和长期性的价值;个人要成长和发展,也需要创造价值。正如数据挖掘的定义所言,它的目标就是要从数据资源中创造价值。所以说,我们需要数据挖掘方法和技术。
总之,我们需要数据挖掘,可以从数据时代、数据资产、核心竞争力和创造价值这四个维度来更高地认识它和积极拥抱它。
三、数据挖掘关注那些问题?
数据挖掘所关注的问题有很多,这个问题欢迎朋友们从自己的认知和实际工作中来回答和完善它。
我结合自己的实际工作,说一下数据挖掘主要关注的一些核心问题。
首先,分类问题。分类的作用非常广泛,各行各业都可以找到应用场景。100个人至少可以说出100个例子,比方说,我所在的金融科技领域,如何判断和识别这个人信用卡交易是否欺诈?这个人申请信用贷款是否会违约?这个人借到钱后是否会正常还款?这个人逾期后是否可以把钱催回来?这些问题涵盖了整个信贷生命周期,包括贷前的欺诈评分、申请评分;贷中的行为评分;贷后的催收评分。是否问题是一种常用而典型的二元分类问题,还有多分类问题。比方说,客户的价值贡献,分为高、中、低三个级别。
其次,回归问题。分类问题关注的结果是离散型;回归问题需要解决的结果是连续型。比方说,某个产品的销量预测;某个产品的价格预估。分类问题和回归问题,可以综合一起使用。比方说,金融科技领域里面,贷前是否欺诈和是否申请违约,属于分类问题,通过后的授信额度管控或者配置,可以看作是回归问题。
第三,聚类分析。俗话说,物以类聚,人以群分。说的就是群体的智慧和相似模式。这样的应用场景也随处可见,比方说市场营销的分群管理和运营;比方说信息检索领域的文档归档管理等。聚类问题,与分类问题和回归问题的差异,在于没有正确的标签数据或者目标变量了,而是希望所聚合的群体,内部相似性最大化,内间差异化最大化。聚类分析,也常用与一种有效的数据预处理手段,把一个庞大的数据集,分解为多个具有相似性的小群体,然后对于小群体做进一步研究和观察。
第四,关联分析。用于发现和提取事物之间的关联特性,通过那些有价值的关联规则指导营销、运营和推荐的事情,以实现客户价值的最大化。现如今,获客成本不断增加,客户的生命周期价值如何延长和提升,就显得尤为重要了。关联分析,可以在这里发挥着积极作用和带来立竿见影的效果。
第五,降维技术。我把它分为样本降维和特征降维,样本降维,可以采用聚类技术或者统计学的抽样技术;特征降维包括特征抽取和特征选择,前者是基于原有特征集衍生出一些综合性的新的特征集,并且保持前后的信息丢失最小化;后者是从原有特征集中搜索和选择子集的过程,根据是否有标签,分为有监督的特征选择和无监督的特征选择,前者是选择与目标有用和相关的特征子集,后者选择能够维持前后相似性或拓扑结构性的特征子集。
除了上面描述的内容,我还接触过一些数据挖掘技术,例如:
1 推荐系统及应用
2 文本分析和挖掘技术
3 非结构化数据分析和挖掘技术
4 数据异常值检测和处理
等等
关于这个问题,你有什么要补充的,请留言。
四、数据挖掘如何创造价值?
这个问题是我一直在思考的问题,也是我非常重视和关注的问题。我在对于数据挖掘的定义和为什么要数据挖掘已经说到了创造价值。
创造价值是数据挖掘的源头,也是数据挖掘的归属。
数据挖掘如何创造价值?
我这里谈两方面的价值。
一是,公司层面,肯定是关注和重视利用数据挖掘创造商业价值。我所在金融科技公司,就是利用新技术和方法来提升和优化金融服务的效能。这个时候,利用数据挖掘创造价值,可以归结为3点。
第一,增加收入
第二,降低成本
第三,管控风险
不管是模型也好,还是规则也罢,又或是效率也行,最终要衡量数据挖掘所带来的价值,终究要回归到上面三点。举例说明如下,我们通过设计和构建一个申请信用评分模型,模型效果测评通过,进行自动化部署后,可以更好地管控风险,同时,可以提升审批效率,增加了业务规模,降低了人力成本,并且可以量化这个效能,而这些就是这个数据挖掘技术应用所带来的价值。
二是,不管是企业,还是个人,我们都要做有利于社会的事情,我们需要有一种社会责任感,这对应着社会价值。同样,数据挖掘方法和技术也可以创造社会价值,一些非营利性机构的研究人员,通过数据挖掘技术,来对气候、环境给予有效的建议,其目的就是让我们所生活的环境更美好,更可持续,这些都是有价值的,并且是造福子孙后代的。
所有说,数据挖掘可以通过商业性和社会性来创造价值。
五、数据挖掘工具有哪些?
数据挖掘的工具非常丰富,概括起来,有图形化工具,也有写代码的工具;有免费的工具,也有收费商业化的工具。各个工具都有优劣,大家可以根据自己实际情况和具体要求学习和使用工具。
工具的目的,就是帮助我们更高效地应用数据挖掘创造价值。
我说下自己常用的数据挖掘工具。
一个是R语言,另一个是Python语言,它们都属于免费的、开源的、写代码的数据挖掘工具,都具有着活跃的生态。
我做了一个竖屏导图,来说明这两个工具。如下图:
顺便说一下,我是一个竖屏导图的深度学习者和践行者。竖屏导图,它是一种适合手机阅读、分享和传播的思维导图,利用思维导图,可以帮助我高效学习和思考。若是你对竖屏导图,也充满好奇心,我们可以一起交流。
除了R语言和Pyhon语言这些挖掘工具,在实际的工作中,也有缘与这些工具打过交道。
1 一个是SAS,以前在给银行做项目的时候,指定要用SAS,就用过一段时间。
2 一个是SPSS,简单了解过,但是,用的浅。
3 一个是Matlab,曾经在做项目的时候,看他人的代码使用MATLAB写的,就使用它测试和运行了下。
一位老师跟我说,我不拘泥于工具,而是什么项目需要用到什么工具,我就快速学习和使用它。我非常地佩服这位老师。言外之意,快速学习和迁移的能力是要培养和强化的。
当然,我所写的这个专栏,选择用R语言。后续的文章关于数据挖掘的知识的介绍和应用,以R语言编写程式来说明。
六、R语言是什么?
R语言是什么?想必关注R语言公众号的伙伴们,对这个问题,都会有自己的答案。
我想说,R语言是我常用的数据挖掘工具之一,它擅长统计分析、机器学习和数据可视化技术。
我想说,R语言是免费的,开源的,有着活跃的生态,在R语言的世界里面,恐怕只有你想不到的,太多的人都在为之贡献和付出着。当然了,我们R语言公众号,也在为R语言的学习和应用做出力所能及的贡献和影响。
我想说,R语言帮助我解决了很多数据问题,让我感受到数据创造价值的魅力。
关于R语言是什么,其它的一些观点或者认知,可以看下图,做个补充。
七、为什么学习和使用R语言?
我先说一下,我和R语言的缘分。
我是13年的时候接触到R语言,那个时候,我在一所大学里面做老师。我始终看好大数据相关的技术,就这样我碰到了R语言。并且开始在R语言的官方网站上面,找一些相关的资料了解和认识R语言。让我受益匪浅的事情是,我坚持反复阅读了《R语言实战》英文版,这本书让我对于R语言的知识有了更深入地了解和认识,并且可以把这些知识做迁移,以应用到我实际项目中的数据问题,其中就包括数据分析和数据挖掘的任务。并且,在微信公众号的兴起时,我也创建了R语言公众号,以用于分享和传播R语言的知识。时至今日,我依旧坚持在R语言公众号里面输出一些R语言与数据相关的内容,以帮助朋友们从数据中学习。
为什么学习和使用R语言?我想,每一个学习和使用R语言的伙伴,也会有自己的答案。于我而言,可以概括为3点。
第一,R语言能够帮助我从数据中学习,通过R语言,我可以更有效地懂数据、用数据。
第二,R语言公众号的缘故和写作的习惯,促使了我继续学习和使用R语言。
第三,R语言活跃的生态以及在各行各业的应用,添加我个人微信luqin360的朋友,来自各行各业,因为R语言,我们相聚了,大家互助,真是一件快乐而有意义的事情。
鉴于此,我会继续学习和使用R语言。
你的为什么,请留言。
八、如何用R语言做数据挖掘?
我刚开始学习R语言的时候,就有着明确的目标,那是利用R语言做数据分析和数据挖掘的任务。这样我所要学习的内容,就有了方向性,并且通过具体的实践,让我对于R语言和数据挖掘有了更好地认识和理解,逐渐地形成了不同问题、不同数据挖掘方法和不同的R语言代码的知识体系,围绕这样的知识体系,继续学习和实践,以做改进、优化和完善的事情,实现不断进步和熟练、灵活应用和迁移的目标。
如何用R语言做数据挖掘呢?我归纳为3点。
第一,学习R语言和数据挖掘知识,并且是有目的性的学习。关于数据挖掘和R语言的概述,可以把本文的问题1到问题7再思考一遍,自己说给自己听,或者教会自己身边的伙伴。
第二,把所学到的知识积极地应用起来,在项目实践和问题求解中,验证自己所学到的东西,以及发现自己所欠缺知识,从问题中来,又到问题中去,周而复始,不断迭代,可以实现快速地学习和成长。
第三,结合实际情况,选择数据挖掘的一个问题域深入耕耘。比方说,我曾经花了很长时间和精力去学习和练习R语言解决数据挖掘里面的分类问题,掌握各种分类算法和技术,并且在实际数据中,利用R语言编写程序去测试和验证,同时,做好总结。
一句话,关于R语言做数据挖掘,就是在“学中做、做中学”,持之以恒,反复增进。
胡适先生说过,“功不唐捐”。天下没有白费的努力,你在学习和使用R语言做数据挖掘的进程中,不是一个人在奋斗,还有我们,R语言群。大家一起学习和进步。
九、R语言做数据挖掘的优势和劣势?
我们要全方位地来看待一件事情。俗话说,“用人所长,则天下无不可用之人;用人所短,则天下无可用之人。”
R语言做数据挖掘,既有优势,也有劣势。我们所要做的,就是扬长避短,发挥好R语言做数据挖掘的优势,同时,承认其不足。有时候,缺陷也未尝不是一种美丽。
R语言做数据挖掘的优势,我说两点。
第一,如果你对R语言有感情,你就会发现它的优势,并且想方设法去用好它的优势,我们人是讲感情的。我这么说的,就是请大家问下自己,喜欢用R语言吗?愿意花时间去学习和使用R语言吗?这个是动力的源泉。这个解决了,后面的一切都迎刃而解了。
第二,R语言做数据挖掘,它有活跃的生态,有丰富地R包,有很多资源和资料,可以让你快速学习和迁移,以帮助你解决问题,并且它更新和迭代一直在进行中。
R语言做数据挖掘的劣势,我说一点。
R语言采用了内存计算的机制,把一切视为对象,而这些对象的处理,都需要加入内存做计算和处理,言外之意,对于太大量的数据,做数据挖掘,会有一定的挑战性。这个时候,需要寻找其他解决方案来协助R语言。
为了完成这篇文章的撰写,参阅了一些相关资料,逐一记录如下。
参考资料:
1https://en.wikipedia.org/wiki/Data_mining
2https://www.ibm.com/cloud/learn/data-mining
3https://www.sas.com/en_sg/insights/analytics/data-mining.html
4https://onix-systems.com/blog/8-data-mining-techniques-you-must-learn-to-succeed-in-business
朋友们,关于本文说提及的问题,你有什么想法,请留言。
最好,希望朋友们喜欢。
机器学习和数据挖掘有什么关系?请看视频:
好书推荐
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!