随着java的发展,数据挖掘也变得逐渐热门,我们随手打开一个购物网站,首先映入眼帘的便是五花八门的推荐的物品,又如我们逛抖音、快手,就在我们上下刷屏的过程中,系统就会不停的推荐新的视频内容过来。不论是文字、视频还是图片,如果我们不去处理,那么它们就只是一堆杂乱无章的数据。但如果我们对它们进行分类、处理、统计乃至挖掘,找到数据间的关联关系,那么这些数据就可能会带来商机,为企业后续的规划出谋划策。
为什么要用数据挖掘?
如今随着互联网经济的迅速发展,我们生活在大量数据日积月累的时代,如果我们能够对数据挖掘有个深入的认识和了解,我们就能够把握时代的潮流,也就能从海量数据中获取自己想要的内容。数据挖掘应用领域也在变大,常见的数据挖掘应用有智能对话机器人、推荐算法等。总之,有了数据挖掘后,知识的获取会变得更加方便,购物、生活等方面也会变得更加便捷。
什么是数据挖掘?
按照话术来说,数据挖掘就是数据中的知识发现。
换一句话说,数据挖掘就是从大量看上去杂乱无章的数据信息中发现有用的信息并转换成知识的过程。
举个例子:大家都去逛过京东或者淘宝吧,当我们浏览过很多相似的物品时,系统首页很快就会推荐更多相关的产品给我们,这里就用到了数据挖掘,通过物品维度,也就是以物品视角出发推荐相似的物品,如下图所示
再举个例子: 我们再京东买东西时购物车页面下方会有个猜你喜欢的界面,这里面的物品就是通过数据挖掘算法推荐给相应用户,体现系统更加人性化,更加了解用户,从而提升用户体验,如下图所示
针对初学者,数据挖掘有哪些门槛?
- 数据挖掘需要海量数据才可以进行分析和处理,初学者往往会难以获取数据来源,于是只好通过网上购买或者自己编造数据来替代。
- 一部分初学者(包括我自己)刚开始上手可能会被一些数学公式如何转换成代码所困扰,但是只要能够多练多用IDE编写代码多尝试,数据挖掘还是比较容易入门的。
- 数据挖掘中的推荐算法可能需要针对阈值进行调优,这个可能也会比较枯燥。
推荐的书籍:机械工业出版社 Jiawei Han的《数据挖掘概念与技术》(黑皮书)------这本书是我的启蒙书,推荐给大家。这本书是基础版,还有一本是《数据挖掘原理与实践》,配合着看效果不错。
数据挖掘流程
- 数据清理
- 数据集成
- 数据选择
- 数据变换
- 数据挖掘
- 模型评估
- 结果表示
1. 数据清理
数据质量有以下几个因素需要考量(主要是前三者):
- 准确性
- 完整性
- 一致性
- 时效性
- 可信性
- 可解释性
我们无法保证获取到的数据质量是否满足我们需求,因此在数据挖掘前先得要进行数据的清理。数据清理主要包括以下几点:
- 空白数据剔除
- 重复冗余数据剔除
- 噪声消除:
可以用分箱方法进行光滑 - 错误数据剔除
- 不完整数据清理
分为直接忽略、人工填写缺失值、使用贝叶斯、决策树等预测缺失值等方法
具体如何剔除要考虑实际业务,如果有集成要求之后还需要进行数据集成。
2. 数据集成
数据集成是指将来自不同数据源的数据汇总分析,就比如我们需要收集某一地区企业的经营数据、涉案数据等数据最后进行综合打分,筛选出疑点企业,这时就要用到数据集成,因为涉及到一家企业的经营数据和涉案数据来源于不同的数据源。集成后的数据要保证数据的一致性、数据的完整性以及数据的准确性。
而冗余则是数据集成另一个需要注意的问题。后续会详细展开。
3. 数据选择
针对集成的数据进行选择,实现数据的初步筛选
4. 数据变换
对数据格式进行检验和转换。
5. 数据挖掘
通过某些手段和方法对数据进行处理,对数据间的联系按照某些特定的规则进行挖掘,直至得出我们想要的结果。
6. 结果表示
将处理后的数据通过平台展示出来。
数据挖掘的相关术语及基础知识
属性:
字段名称,表示数据对象的一个特征,比如我现在新建了一个Person类,里面的name就是一个属性,并且是一个标称属性。(后面会讲到), 又称维度、特征、变量。
标称属性:
值无法用数值定量的属性。比如人的名字、出生日期等。
序数属性:
值可以用数值定量并且不同值的差不确定的属性,比如成绩(A+、A、A-、B+...) 或者满意程度等。
数值属性:
值可以用数值定量并且不同值的差确定的属性,比如年龄
二元属性:
值只有两种,0或1,比如性别,此外,可以根据不同值的权重是否一致分为对称二元属性和非对称二元属性。性别很显然是对称二元属性,非对称比如疾病的阴性和阳性等。
相似性、相异性:
相似性 :两个属性的值的相似程度,
相异性:两个属性的值的相异程度
------------------------------------------ 未完待续------------------------------------------------------------------