CategoryResourceRepost/极客时间专栏/数据分析实战45讲/第一模块:数据分析基础篇/02丨学习数据挖掘的最佳路径是什么?.md
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

141 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<audio id="audio" title="02丨学习数据挖掘的最佳路径是什么" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/10/b5/10da36850ed14fd1845b5ad10a935ab5.mp3"></audio>
上一节中,我给你分享了数据分析的全景图,其中最关键的部分就是数据挖掘,那什么是数据挖掘呢?
想象一下,茫茫的大海上,孤零零地屹立着钻井,想要从大海中开采出宝贵的石油。
对于普通人来说,大海是很难感知的,就更不用说找到宝藏了。但对于熟练的石油开采人员来说,大海是有坐标的。他们对地质做勘探,分析地质构造,从而发现哪些地方更可能有石油。然后用开采工具,进行深度挖掘,直到打到石油为止。
大海、地质信息、石油对开采人员来说就是数据源、地理位置、以及分析得到的结果。
而我们要做的数据挖掘工作,就好像这个钻井一样,通过分析这些数据,从庞大的数据中发现规律,找到宝藏。
## 数据挖掘,从知识清单开始
我们第一天学开车的时候一定不会直接上路,而是要你先学习基本的知识,然后再进行上车模拟。
只有对知识有全面的认知,才能确保在以后的工作中即使遇到了问题,也可以快速定位问题所在,然后找方法去对应和解决。
所以我列了一个数据挖掘的知识清单,分别是数据挖掘的基本流程、十大算法和数学原理,以此来开启我们的学习之旅。
## 数据挖掘的基本流程
在正式讲数据挖掘知识清单之前,我先和你聊聊数据挖掘的基本流程。
数据挖掘的过程可以分成以下6个步骤。
<li>
**商业理解**:数据挖掘不是我们的目的,我们的目的是更好地帮助业务,所以第一步我们要从商业的角度理解项目需求,在这个基础上,再对数据挖掘的目标进行定义。
</li>
<li>
**数据理解**:尝试收集部分数据,然后对数据进行探索,包括数据描述、数据质量验证等。这有助于你对收集的数据有个初步的认知。
</li>
<li>
**数据准备**:开始收集数据,并对数据进行清洗、数据集成等操作,完成数据挖掘前的准备工作。
</li>
<li>
**模型建立**:选择和应用各种数据挖掘模型,并进行优化,以便得到更好的分类结果。
</li>
<li>
**模型评估**:对模型进行评价,并检查构建模型的每个步骤,确认模型是否实现了预定的商业目标。
</li>
<li>
**上线发布**:模型的作用是从数据中找到金矿,也就是我们所说的“知识”,获得的知识需要转化成用户可以使用的方式,呈现的形式可以是一份报告,也可以是实现一个比较复杂的、可重复的数据挖掘过程。数据挖掘结果如果是日常运营的一部分,那么后续的监控和维护就会变得重要。
</li>
## 数据挖掘的十大算法
为了进行数据挖掘任务数据科学家们提出了各种模型在众多的数据挖掘模型中国际权威的学术组织ICDM the IEEE International Conference on Data Mining评选出了十大经典的算法。
按照不同的目的,我可以将这些算法分成四类,以便你更好的理解。
l **分类算法**C4.5朴素贝叶斯Naive BayesSVMKNNAdaboostCART
l **聚类算法**K-MeansEM
l **关联分析**Apriori
l **连接分析**PageRank
**1. C4.5**
C4.5算法是得票最高的算法可以说是十大算法之首。C4.5是决策树的算法,它创造性地在决策树构造过程中就进行了剪枝,并且可以处理连续的属性,也能对不完整的数据进行处理。它可以说是决策树分类中,具有里程碑式意义的算法。
**2. 朴素贝叶斯Naive Bayes**
朴素贝叶斯模型是基于概率论的原理,它的思想是这样的:对于给出的未知物体想要进行分类,就需要求解在这个未知物体出现的条件下各个类别出现的概率,哪个最大,就认为这个未知物体属于哪个分类。
**3. SVM**
SVM的中文叫支持向量机英文是Support Vector Machine简称SVM。SVM在训练中建立了一个超平面的分类模型。如果你对超平面不理解没有关系我在后面的算法篇会给你进行介绍。
**4. KNN**
KNN也叫K最近邻算法英文是 K-Nearest Neighbor。所谓K近邻就是每个样本都可以用它最接近的K个邻居来代表。如果一个样本它的K个最接近的邻居都属于分类A那么这个样本也属于分类A。
**5. AdaBoost**
Adaboost在训练中建立了一个联合的分类模型。boost在英文中代表提升的意思所以Adaboost是个构建分类器的提升算法。它可以让我们多个弱的分类器组成一个强的分类器所以Adaboost也是一个常用的分类算法。
**6. CART**
CART代表分类和回归树英文是 Classification and Regression Trees。像英文一样它构建了两棵树一棵是分类树另一个是回归树。和C4.5一样,它是一个决策树学习方法。
**7. Apriori**
Apriori是一种挖掘关联规则association rules的算法它通过挖掘频繁项集frequent item sets来揭示物品之间的关联关系被广泛应用到商业挖掘和网络安全等领域中。频繁项集是指经常出现在一起的物品的集合关联规则暗示着两种物品之间可能存在很强的关系。
**8. K-Means**
K-Means 算法是一个聚类算法。你可以这么理解最终我想把物体划分成K类。假设每个类别里面都有个“中心点”即意见领袖它是这个类别的核心。现在我有一个新点要归类这时候就只要计算这个新点与K个中心点的距离距离哪个中心点近就变成了哪个类别。
**9. EM**
EM算法也叫最大期望算法是求参数的最大似然估计的一种方法。原理是这样的假设我们想要评估参数A和参数B在开始状态下二者都是未知的并且知道了A的信息就可以得到B的信息反过来知道了B也就得到了A。可以考虑首先赋予A某个初值以此得到B的估值然后从B的估值出发重新估计A的取值这个过程一直持续到收敛为止。
EM算法经常用于聚类和机器学习领域中。
**10. PageRank**
PageRank起源于论文影响力的计算方式如果一篇文论被引入的次数越多就代表这篇论文的影响力越强。同样PageRank被Google创造性地应用到了网页权重的计算中当一个页面链出的页面越多说明这个页面的“参考文献”越多当这个页面被链入的频率越高说明这个页面被引用的次数越高。基于这个原理我们可以得到网站的权重划分。
算法可以说是数据挖掘的灵魂也是最精华的部分。这10个经典算法在整个数据挖掘领域中的得票最高的后面的一些其他算法也基本上都是在这个基础上进行改进和创新。今天你先对十大算法有一个初步的了解你只需要做到心中有数就可以了具体内容不理解没有关系后面我会详细给你进行讲解。
## 数据挖掘的数学原理
我说了这么多数据挖掘中的经典算法,但是如果你不了解概率论和数理统计,还是很难掌握算法的本质;如果你不懂线性代数,就很难理解矩阵和向量运作在数据挖掘中的价值;如果你没有最优化方法的概念,就对迭代收敛理解不深。所以说,想要更深刻地理解数据挖掘的方法,就非常有必要了解它后背的数学原理。
**1. 概率论与数理统计**
概率论在我们上大学的时候,基本上都学过,不过大学里老师教的内容,偏概率的多一些,统计部分讲得比较少。在数据挖掘里使用到概率论的地方就比较多了。比如条件概率、独立性的概念,以及随机变量、多维随机变量的概念。
很多算法的本质都与概率论相关,所以说概率论与数理统计是数据挖掘的重要数学基础。
**2. 线性代数**
向量和矩阵是线性代数中的重要知识点,它被广泛应用到数据挖掘中,比如我们经常会把对象抽象为矩阵的表示,一幅图像就可以抽象出来是一个矩阵,我们也经常计算特征值和特征向量,用特征向量来近似代表物体的特征。这个是大数据降维的基本思路。
基于矩阵的各种运算以及基于矩阵的理论成熟可以帮我们解决很多实际问题比如PCA方法、SVD方法以及MF、NMF方法等在数据挖掘中都有广泛的应用。
**3. 图论**
社交网络的兴起让图论的应用也越来越广。人与人的关系可以用图论上的两个节点来进行连接节点的度可以理解为一个人的朋友数。我们都听说过人脉的六度理论在Facebook上被证明平均一个人与另一个人的连接只需要3.57个人。当然图论对于网络结构的分析非常有效,同时图论也在关系挖掘和图像分割中有重要的作用。
**4. 最优化方法**
最优化方法相当于机器学习中自我学习的过程,当机器知道了目标,训练后与结果存在偏差就需要迭代调整,那么最优化就是这个调整的过程。一般来说,这个学习和迭代的过程是漫长、随机的。最优化方法的提出就是用更短的时间得到收敛,取得更好的效果。
## 总结
今天我列了下学习数据挖掘你要掌握的知识清单,只有你对数据挖掘的流程、算法、原理有更深的理解,你才能在实际工作中更好地运用,我将在后面的章节中对它们进行一一介绍。
<img src="https://static001.geekbang.org/resource/image/11/d7/1130af6d29d029c470144dfc8610b6d7.jpg" alt="">
最后给你留道思考题吧。
今天我给你讲了如何学习数据挖掘,你从中有什么样的体会呢?如果某电商网站想挖掘商品之间的关联关系,从而提升销售额,你觉得可以采用上面的哪个算法?为什么?
欢迎在留言区和我讨论,也欢迎点击“请朋友读”,把这篇文章分享给你的朋友或者同事,一起来交流,一起来进步。