数据挖掘算法可以解决生活中很多问题,例如垃圾邮件的标记识别、欺诈交易用户的识别、品牌档次的判断定位、文章是否真的出自某位作家之手以及癌症细胞的判定等等,灵活的理解并应用数据挖掘算法可以高效的解决这些看似繁复的问题。
如下为数据挖掘中常用的算法类型,并通过生活中的案例去说明数据挖掘算法并不高深、随处可见。
实际的数据分析工作中,数据挖掘算法基本为 分类算法、预测算法、聚类算法以及关联算法这四种类型,其中分类算法与预测算法属于有监督学习,聚类类算法那与关联算法属于无监督学习,下面分别解释下这四种类型的数据挖掘算法到底在挖掘些什么。
有监督学习算法:
有监督学习的算法均需存在目标变量Y,做的事情是探索特征变量X和目标变量Y之间的关系,在目标变量Y的监督下学习与优化算法,所有的回归和分类都是有监督的学习算法。例如信用评分模型就是典型的有监督学习算法,算法的目的在于研究客户属性特征变量(人口统计、收入等)和目标变量Y之间的关系,目标变量Y为“是否违约”。
- 分类算法
分类算法的目标变量Y是分类离散型(例如是否违约、是否为癌细胞、是否为垃圾邮件等),具体的分类算法包括,逻辑回归、决策树、KNN、贝叶斯判别、SVM、随机森林、神经网络等。
- 预测算法
预测类算法,其目标变量Y一般是连续型变量,常见算法包括线性回归、神经网络、SVM等。
无监督学习算法:
无监督学习算法没有目标变量Y,这种类型的算法基于数据本身的属性去识别变量之间内在的模式和特征,建模过程中除了需要设置些必要的超参数以外不用对样本做任何标记或者过程干预。例如关联分析通过数据发现事物两者之间的关联性。例如聚类分析通过距离将所有样本划分为几个稳定可分的群体。这些都是在没有目标变量Y监督下的模式识别和分析。
- 聚类分析
聚类的目的就是实现对样本的细分,使得同组内的样本特征较为相似,不同组的样本特征差异较大。常见的聚类算法包括kmeans、系谱聚类、密度聚类等。
- 关联分析
关联分析的目的在于,找出事物之间内在的联系。比较传统的购物篮分析即为关联分析,即消费者常常会同时购买哪些产品(例如游泳裤、防晒霜),从而有助于商家的捆绑营销。
生活中涉及数据挖掘算法的示例:
- K近邻算法:物以类聚人以群分
这句话通常来自家长的劝诫,但它透露着不折不扣的近邻思想。在分类算法中,K最近邻是最普通也是最好理解的算法,它的主要思想是通过离待预测样本最近的K个样本的类别来判断当前样本的类别。家长们希望孩子成为好学生,可能为此不惜重金购买学区房或者上私立学校,一个原因之一是这些优秀的学校里有更多的优秀学生。与其他优秀学生走的更近,从K最近邻算法的角度来看,就是让目标样本与其他正样本距离更近、与其他负样本距离更远,从而使得其近邻中的正样本比例更高,更大概率被判断成正样本。
- 贝叶斯判别:春节期间乘坐公交车10次有9次被偷
“春节期间乘坐公交车10次有9次被偷”就意味着“春节坐公交”被偷的概率P(被偷|春节坐公交)=0.9,假设根据公安局历史记录春节坐公交出行占所有出行方式的占比P(公交)=0.1、被偷发生的概率是P(被偷)=0.09,那么这时如果发生被偷事件,就可以通过贝叶斯公式判断出“坐公交”的概率P(坐公交|被偷)=P(被偷|坐公交)×P(坐公交)÷P(被偷)=1.0,即该人之所以被偷,100%是因为他选择了“坐公交”。
- 决策树算法:相亲标准步骤~先身高再收入再长相
相亲时,每个人都会有一套自己的判断逻辑。假设“身高”、“收入”和“长相”是大家认为的的区分“优劣”相亲对象的三项关键特征,那么这样一个有先后次序的判断逻辑就构成一个决策树模型。在决策树中,最能区分类别的特征将作为最先判断的条件,然后依次向下判断各个次优特征。决策树的核心就在于如何选取每个节点的最优判断条件,也即特征选择的过程。
而在每一个判断节点,决策树都会遵循一套IF-THEN的规则:
IF “身高不够” THEN -> “Pass掉”
ELSE IF “收入太低” THEN -> “Pass掉”
ELSE IF “长得太丑” THEN -> “Pass掉”
ELSE -> “这个人貌似还不错~”
- 逻辑回归模型:不穿工装扣1分、早上迟到扣2分、不爱加班扣10分
公司中HR对员工日常行为的记录过程就非常类似于逻辑回归的算法原理。逻辑回归为一种线性分类器,其特征就在于自变量x和因变量y之间存在类似y=ax+b的一阶的、线性的关系。假设“不穿工装”、“早上迟到”和“不爱加班”的次数分别表示为x1、x2、和x3,且每个员工的基础分为0,那么最终得分y=-1*x1-2*x2-10*x3+0。其中-1、-2和-10分别就对应于每种行为类别的权重;
- 支持向量机:公司老板致力于将绩效差的人划分出去
对于“绩效差的员工”,一般公司采取的做法是尽量让他们与“绩效好的员工”保持距离,从而相当于在员工间画了一条清晰的分割界线,支持向量机的思想就是如此。支持向量机致力于在正负样本的边界上找到一条分割界线(超平面),使得它能完全区分两类样本的同时,保证划分出的间隔尽量的大。如果一条分割界线无法完全区分(线性不可分),要么加上松弛变量进行适当的容忍,要么通过核函数对样本进行空间上的映射后再进行划分。
我的公众号:Data Analyst
个人网站:https://www.datanalyst.net/