数据挖掘基本概念框架
认识
数据挖掘类似挖矿–>找出事先不知道的潜在的有用知识
更多是要挖掘出模式,而不只是知识,所以数据挖掘–>机器学习
过程:数据–清洗–集成–选择(指标、算法模型)–找到知识
与统计学:
关系: 统计学与数据挖掘目标类似,方法类似(回归、聚类、分类等等);
区别:统计学:统计分析建模;数据挖掘:融合计算机
与数据分析:
分析:假设–验证假设
挖掘:事先不知道假设(发现驱动),前提是有充分的数据分析,所以是包含关系
与机器学习:
机器学习:不仅包含数据挖掘,还有统计学、模式识别、自然语言处理;可以自动学习新知识
数据挖掘:不具有自动学习的功能,它是机器学习的一些方法,只是从历史数据挖掘出一些模式
流程:CRISP-DM
商业理解-数据理解-数据准备-建立模型-数据评估-发布
商业理解:从商业角度理解项目的目标和要求(类似需求分析)
数据理解:数据质量检查、数据探索、找出分布和基本统计量(知道数据长什么样和一些规则)
数据准备:样本和属性选择,按照建模工具要求对数据转换和清洗
建模:模型选择和参数调优
评估:模型是否满足商业目标,分析时一些问题是不是没有考虑到,结果的使用范围
发布:根据项目的建设目标进行发布,软件集成和报告
算法
监督性学习算法
分类
预测分类标号(离散取值)
根据数据集合标签模型,构建模型分类现有数据,并用生成的模型对新数据分类
流程
建立模型:描述预定数据类集合概念集
训练样本,测试样本
使用模型:将未来或未知的对象进行分类
首先进行评估,常用指标包括准确率和召回率
要注意:训练和测试的样本需要完全分离,否则会造成波动拟合的问题
算法
决策树算法
模拟人类识别的问题
每个树节点可以是叶节点,对应某一类,也可以对应一个划分
将样本进行自上而下分而治之
包含 C4.5 算法和 C5.0 算法
核心是在决策树各级节点上选择属性,使得在每个非叶子节点上进行测试时,能获得被测试例子最大的类别信息
选择方法有两种:
C4.5:信息增益,所有的指标都是离散的
C5.0:信息增益率,既可以适用于离散,也可以适用于连续,为了避免属性选择不准
构造方法:
计算信息量、计算信息期望、计算信息增益
使用过程:训练过程–测试过程
剪枝——提出无关紧要的分枝
贝叶斯分类法
用贝叶斯定律预测类成员的概率,给定类成员相关属性,计算该成员属于某类别的相关概率(后验概率)
前提是假设每个属性都相互独立,假设每个属性对类别产生的影响都是等价的(朴素贝叶斯算法)
网络贝叶斯算法:考虑属性之间的相关性(使用比较多)
难点:需要概率的初始知识,或者一些背景知识;计算代价比较大
Logistic 回归算法:
研究观测结果为分类变量与响应因素之间的回归关系的多因素统计分析算法
通过计算因变量对目标变量的影响,分析目标变量的归类
二分类回归、多分类回归(转化为二分类问题,进行组合)
是神经网络和深度学习的核心算法
分为一元和多元的逻辑回归
参数确定:
最大似然估计法,梯度下降法、EM 算法
KNN 算法:(很少用)
K 最近邻算法,最简单的算法之一,不需要训练可以直接计算,但输出的结果解释性不强
如果一个样本在特征空间中的 K 个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别
前提:所选的邻居样本已经正确分类
核心思想:计算样本之间的距离:如欧氏距离、马氏距离等
其他算法:SVM、神经网络
预测
构造和使用模型评估无样本类,或评估给定样本可能的属性和值空间
目标变量连续
预测空缺值和价格等等
算法
回归预测算法
线性回归
多元回归
非线性回归
模型评估
指标:准确率、召回率、平均绝对误差等
分类:
保持方法
将给定数据划分为两个数据集合:训练集(2/3)和测试集(1/3)–>严格来说,还会有验证集,用来调参
随机子选样方法
将保持方法重复 k 次,选取指标的平均值作为最终的评估结果
比保持方法更科学
k-折交叉确认
将数据分为 k 个分类,一定比例选择测试集和训练集,不断迭代
无监督性学习算法
有监督学习算法有类标签,无监督学习算法没有类标签(不知道属于哪一类)
聚类算法
同一个类中样本相似度最大,不同类中样本差异度最大
K-Means 算法(k-均值聚类)
以最小化误差函数为基础
需要定义聚类数目、迭代次数或者收敛条件,并指定 K 个中心点,根据一定的相似性度量准则进行聚类,反复迭代
降维算法
将几千个特征压缩为若干特征,去除冗余信息,减少特征数量,提高算法性能,便于可视化
PCA 算法(分解矩阵)、SVD 算法(分解矩阵)、张量分解算法(更高维度分解)–>将数据压缩成少数几个维度
特殊算法
智能推荐算法
和搜索引擎
相同:帮助用户快速发现有用信息
不同:搜索引擎需要用户主动获取关键词;推荐算法不需要用户明确提出需求,而是分析历史行为
两者是互补关系
算法
关联规则算法
从信息存储中发现有趣的隐藏的频繁出现的模式
算法:Apriori 算法等
计算支持度和置信度,指定阈值,生成规则
支持度:事务集中,同时包含 A 和 B 的百分比
置信度:事务集中,包含 A 的情况下也包含 B 的概率
k-项集
顶集的频率:包含指定项集的事务数的占比
根据最小支持度阈值,找到频繁项集
协同过滤算法
新上线的推荐系统,第一个算法就是协同过滤算法
基于用户的协同过滤
假设:如果用户对一些物品的评分比较相似,那么他们对其他物品的评分也很相似
基于物品的协同过滤
假设:用户对项目的评分和用户对其他相似项目的评分很相似
问题:数据的稀疏性(很难找到相似用户),数据的扩展性(相似度关系代码需要很长的计算时间)
计算相似度
余弦相似度
修正的余弦相似性
相关相似性
评分估算公式
其他:内容推荐、标签推荐、社交网络推荐、位置推荐
半监督性学习算法:机器学习应用很多
一部分数据有标签,另一部分没有,用一部分有标签的数据来扩展没有标签的数据
工具
Python
工具包 Numpy Pandas Matplotlib Scipy Sklearn NLTK(自然语言处理) NetworkX
集成工具 Anaconda
参考书 《利用 Python 进行数据分析》《Python 数据分析基础教程》《利用 Python 机型自然语言处理》
《数据挖掘导论》(一定看,翻译很烂) 《机器学习实战》 《python 数据分析与挖掘实战》 《大嘴巴漫谈数据挖掘》 www.36dsj.com 《数据挖掘与数据化运营实战》(比较初级) 机器学习基石(台湾大学?)
实际应用:过拟合(应用中过度透视数据,忽略数据的一些不可预测性)