目录
一、数据分析方法论
1.PEST分析法
2.5W2H分析法
3.SWOT分析法
4.4P营销理论
5.逻辑树法
6.AARRR模型
二、数据分析思路
1.趋势分析
2.多维分解
3.用户分群
4.漏斗分析
5.留存分析
6.A/B 测试
7.对比分析
8.交叉分析
三、面试问题
1.逻辑回归和线性回归区别?
2.讲讲偏差与方差,如何解决?
3.决策树优点?过拟合怎么办?逻辑回归过拟合怎么办?
4.讲讲树模型:决策树、随机森林(RF)、AdaBoost、GBDT、XGBoost、LightGBM和CatBoost算法区别及联系?
5.讲讲SVM?
6.Kmeans的原理和步骤
7.你觉得数据分析师和数据挖掘有什么区别?
8.数据分析的框架或步骤
9.讲一下交叉验证
10.数据处理时,值缺失怎么处理?
11.特征处理,连续型和非连续性,如例子,年龄和性别两个特征如何处理?
12.smote过采样做法,会出现什么问题?
13.准确率和召回率的定义
14.L1和L2正则项的区别?L1范数和L2范数为什么可以避免过拟合?
15.辛普森悖论的问题
16.中位数、平均数和众数的区别,什么情形适用什么指标来代表平均水平?
17.二项分布、泊松分布、正态分布的区别是什么?泊松分布的极限形式?
18.SQL语句执行的顺序?
数据分析的方法论很多,其中六种比较常见的理论。
PEST,也就是政治(Politics)、经济(Economy)、社会(Society)、技术(Technology),能从各个方面把握宏观环境的现状及变化趋势,主要用于用户行业分析。
宏观环境又称一般环境,是指影响一切行业和企业的各种宏观力量。
对宏观环境因素作分析时,由于不同行业和企业有其自身特点和经营需要,分析的具体内容会有差异,但一般都应对政治、经济、技术、社会,这四大类影响企业的主要外部环境因素进行分析。
政治环境:政治体制、经济体制、财政政策、税收政策、产业政策、投资政策等。
社会环境:人口规模、性别比例、年龄结构、生活力式、购买习惯、城市特点等。
技术环境:折旧和报废速度、技术更新速度、技术传播速度、技术商品化速度等。
经济环境:GDP 及增长率、进出口总额及增长率、利率、汇率、通货膨胀率、消费价格指数、居民可支配收入、失业率、劳动生产率等。
5W2H,即为什么(Why)、什么事(What)、谁(Who)、什么时候(When)、什么地方(Where)、如何做(How)、什么价格(How much),主要用于用户行为分析、业务问题专题分析、营销活动等。
该分析方法又称为七何分析法,是一个非常简单、方便又实用的工具,以用户购买行为为例:
Why:用户为什么要买?产品的吸引点在哪里?
What:产品提供的功能是什么?
Who:用户群体是什么?这个群体的特点是什么?
When:购买频次是多少?
Where:产品在哪里最受欢迎?在哪里卖出去?
How:用户怎么购买?购买方式什么?
How much:用户购买的成本是多少?时间成本是多少?
SWOT分析法也叫态势分析法,S (strengths)是优势、W (weaknesses)是劣势,O (opportunities)是机会、T (threats)是威胁或风险。
SWOT分析法是用来确定企业自身的内部优势、劣势和外部的机会和威胁等,通过调查列举出来,并依照矩阵形式排列,然后用系统分析的思想,把各种因素相互匹配起来加以分析。
运用这种方法,可以对研究对象所处的情景进行全面、系统、准确的研究,从而将公司的战略与公司内部资源、外部环境有机地结合起来。
4P即产品(Product)、价格(Price)、渠道(Place)、推广(Promotion),在营销领域,这种以市场为导向的营销组合理论,被企业应用最普遍。
可以说企业的一切营销动作都是在围绕着4P理论进行,也就是将:产品、价格、渠道、推广。通过将四者的结合、协调发展,从而提高企业的市场份额,达到最终获利的目的。
产品:从市场营销的角度来看,产品是指能够提供给市场,被入们使用和消费并满足人们某种需要的任何东西,包括有形产品、服务、人员、组织、观念或它们的组合。
价格:是指顾客购买产品时的价格,包括基本价格、折扣价格、支付期限等。影响定价的主要因素有三个:需求、成本与竞争。
渠道:是指产品从生产企业流转到用户手上全过程中所经历的各个环节。
促销:是指企业通过销售行为的改变来刺激用户消费,以短期的行为(比如让利、买一送一,营销现场气氛等等)促成消费的增长,吸引其他品牌的用户或导致提前消费来促进销售的增长。广告、宣传推广、人员推销、销售促进是一个机构促销组合的四大要素。
逻辑树又称问题树、演绎树或分解树等。它是把一个已知问题当成“主干”,然后开始考虑这个问题和哪些相关问题有关,也就是“分支”。逻辑树能保证解决问题的过程的完整性,它能将工作细分为便于操作的任务,确定各部分的优先顺序,明确地把责任落实到个人。
逻辑树的使用必须遵循以下三个原则:
要素化:把相同的问题总结归纳成要素。
框架化:将各个要素组织成框架。遵守不重不漏的原则。
关联化:框架内的各要素保持必要的相互关系,简单而不独立。
AARRR模型是所有运营人员都要了解的一个数据模型,从整个用户生命周期入手,包括获取(Acquisition)、激活(Activation)、留存(Retention)、变现(Revenue)和传播(Refer)。
每个环节分别对应生命周期的5个重要过程,即从获取用户,到提升活跃度,提升留存率,并获取收入,直至最后形成病毒式传播。
数据分析方法论主要是从宏观角度介绍如何进行数据分析,它就像是一个数据分析的前期规划,搭建一个清晰的数据分析框架。那么对于具体的业务场景问题,就要靠具体的分析方法来支撑了,下面就介绍几种常用的数据分析思路。
最简单、最常见的数据分析方法,一般用于核心指标的长期跟踪,比如点击率、GMV、活跃用户数。可以看出数据有那些趋势上的变化,有没有周期性,有没有拐点等,继而分析原因。
也就是通过不同的维度对于数据进行分解,以获取更加精细的数据洞察。举个例子,对网站维护进行数据分析,可以拆分出地区、访问来源、设备、浏览器等等维度。
针对符合某种特定行为或背景信息的用户,进行特定的优化和分析,将多维度和多指标作为分群条件,有针对性地优化供应链,提升供应链稳定性。
按照已知的转化路径,借助漏斗模型分析总体和每一步的转化情况。例如将漏斗图用于网站关键路径的转化率分析,不仅能显示用户的最终转化率,同时还可以展示每一节点的转化率。
留存分析是一种用来分析用户参与情况/活跃程度的分析模型,考察进行初始行为的用户中,有多少人会进行后续行为。衡量留存的常见指标有次日留存率、7日留存率、30日留存率等。
A/B测试是为了达到一个目标,采取了两套方案,通过实验观察两组方案的数据效果,判断两组方案的好坏,需要选择合理的分组样本、监测数据指标、事后数据分析和不同方案评估。
分为横向对比(跟自己比)和纵向对比(跟别人比),常见的对比应用有A/B test,A/B test的关键就是保证两组中只有一个单一变量,其他条件保持一致。
交叉分析法就是将对比分析从多个维度进行交叉展现,进行多角度的结合分析,从中发现最为相关的维度来探索数据变化的原因。
(2条消息) 数据分析方法论(6种方法,8个思路)_梵天的读书笔记的博客-CSDN博客_数据分析方法
线性回归解决的是回归问题,逻辑回归相当于是线性回归的基础上,来解决分类问题。
将线性回归变成一个0~1输出的分类问题。
区别:
1)线性回归用来预测连续的变量(房价预测),逻辑回归用来预测离散的变量(分类,癌症预测)。线性回归要求因变量是连续性数值变量,逻辑回归要求因变量是分类型变量。
2)线性回归是拟合函数,逻辑回归是预测函数
3)线性回归的参数计算方法是最小二乘法,逻辑回归的参数计算方法是似然估计的方法。
4)线性回归要求变量服从正态分布,逻辑回归对变量分布没有要求。
5)线性回归要求自变量和因变量呈线性关系,逻辑回归不要求自变量和因变量呈线性关系
6)线性回归是直接分析因变量与自变量的关系,而逻辑回归是分析因变量取某个值的概率与自变量的关系
偏差: 描述的是预测值(估计值)的期望与真实值之间的差距。 偏差越大,越偏离真实数据。
方差: 描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。 方差越大,数据的分布越分散,刻画了数据扰动所造成的影响。
偏差度量的是单个模型的学习能力,而方差度量的是同一个模型在不同数据集上的稳定性。
过拟合:模型很好的适配训练样本,但在测试集上表现很糟,有一个很大的方差。方差过大就是指模型过于拟合训练数据,以至于没办法把模型的结果泛化。而泛化正是机器学习要解决的问题,如果一个模型只能对一组特定的数据有效,换了数据就无效,我们就说这个模型过拟合。
整体思路:首先,要知道偏差和方差是无法完全避免的,只能尽量减少其影响。
1)在避免偏差时,需尽量选择正确的模型,一个非线性问题而我们一直用线性模型去解决,那无论如何,高偏差是无法避免的。
2)有了正确的模型,我们还要慎重选择数据集的大小,通常数据集越大越好,但大到数据集已经对整体所有数据有了一定的代表性后,再多的数据已经不能提升模型了,反而会带来计算量的增加。而训练数据太小一定是不好的,这会带来过拟合,模型复杂度太高,方差很大,不同数据集训练出来的模型变化非常大。
3)最后,要选择合适的模型复杂度,复杂度高的模型通常对训练数据有很好的拟合能力。
针对偏差和方差的思路:
偏差:实际上也可以称为避免欠拟合。
1)寻找更好的特征 -- 具有代表性。
2)用更多的特征 -- 增大输入向量的维度。(增加模型复杂度)
方差:避免过拟合
1)增大数据集合 -- 使用更多的数据,减少数据扰动所造成的影响
2)减少数据特征 -- 减少数据维度,减少模型复杂度
3)正则化方法
4)交叉验证法
优点:速度快,准确度高,可处理连续和离散变量,无需参数假设,可处理高维数据(特征值较多的数据)
缺点:容易过拟合,忽略了属性之间的相关性
减缓过拟合:缩小树结构的规模
逻辑回归过拟合解决:
1)减少特征值
2)特征值数量不变的情况下,引入正则化惩罚项,缩小最适参数的值等
树模型:决策树、随机森林(RF)、AdaBoost、GBDT、XGBoost、LightGBM和CatBoost算法区别及联系_渣渣zheng的博客-CSDN博客_xgboost提出时间
支持向量机,有监督。离散变量的分类和连续变量的预测。相比单一的分类算法,有更好的预测准确率。
思想:利用某些支持向量所构成的超平面,将不同类别的样本点进行划分。用于,医疗诊断,图像识别,文本分类,市场营销。
优点:仅依赖于一些支持向量,有很好的鲁棒性,避免维度灾难的发生。模型具有较好的泛化能力,一定程度上可避免模型的过拟合。可避免模型局部最优。
缺点:不适合大样本的预测和分类,会消耗大量的计算资源和时间。模型对缺失样本非常敏感,核函数的选择敏感。对计算得到的结果无法解释。
无监督的数据挖掘算法。思想是不断计算各样本点与簇中心之间的距离,直到收敛为止。即使得所有簇的离差平方和之和最小,步骤如下
①初始化k个点。从数据中随机挑选k个样本点作为原始的簇中心。
②计算剩余样本点与簇中心的距离,根据最近距离点归入k个类中。
③更新k个类的簇中心。重新计算各簇中样本点的均值,并以均值作为新的k个簇中心。
④重复②③,直到收敛或达到迭代次数。
如何确定簇中心k值很重要,可采用拐点法,轮廓系数法,间隔统计量法来确定。
数据挖掘就是从海量数据中找到隐藏的规则,数据分析一般采用适当的统计分析方法来对数据进行分析,要分析的目标比较明确。
数据分析 |
数据挖掘 |
|
定义 |
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,未提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。以求最大化地开发数据的功能,发挥数据的作用。 |
是从大量的数据中,提取隐藏在其中的,事先不知道的、但潜在有用的信息的过程。数据挖掘的目标是建立一个决策模型,根据过去的行动数据来预测未来的行为,是一门交叉学科,它涉及了数据库,人工智能,统计学,可视化等不同的学科和领域。 |
重点 |
观察数据 |
从数据中发现“知识规则” |
结论 |
人的智力活动结果 |
机器从学习集(或训练集、样本集)发现的知识规则,可以直接应用到预测 |
模型 |
不能建立数学模型,需要人工建模 |
直接完成了数学建模,通过机器学习自动建立输入与输出的函数关系,来发现未知的规律和价值 |
侧重点 |
业务,统计分析,结果的呈现 |
技术(统计学,机器学习,编程能力),发现规律,建立模型,预测 |
数据量 |
较小 |
需要更大数据量,而数据量越大,对于技术的要求也就越高。 |
能力 |
统计学知识:环比、同比、概率分布、变量、抽样等。 数据分析方法:假设检验、回归分析、漏斗分析、多维分析、对比分析等。 ABtest、AAARRR、SWOT、RFM、5W2H 等。常规统计指标(均值、中位数、分位数等)、回归、聚类、因子、决策树、逻辑回归;tableau\powerbi |
在此基础上: 要做算法、搞研发、创新算法 Hadoop,R、spark等 |
明确目标-数据搜集-数据清洗-构建模型-模型评估-应用部署
CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
K折交叉验证, k折交叉验证先将数据集 D随机划分为 k个大小相同的互斥子集,即 ,每次随机的选择 k-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择 k份来训练数据。若干轮(小于 k )之后,选择损失函数评估最优的模型和参数。注意,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k取值。K的选取是一个Bias和Variance的trade-off。K越大,每次投入的训练集的数据越多,模型的Bias越小。但是K越大,训练集差不多,这种大相关性会导致最终的test error具有更大的Variance。
1)删除样本或删除字段(缺失比例超过80%以上)
2)用中位数、平均值、众数等填充(平均数:数据分布近似于正态分布,中位数:数据分布近似于偏态分布,众数:特征值为离散值)
3)插补:同类均值插补、多重插补、极大似然估计
4)用其它字段构建模型,预测该字段的值,从而填充缺失值(注意:如果该字段也是用于预测模型中作为特征,那么用其它字段建模填充缺失值的方式,并没有给最终的预测模型引入新信息)
5)onehot,将缺失值也认为一种取值
6)压缩感知及矩阵补全
连续型:
1)特征归一化:线性放缩到[-1,1],放缩到均值0,方差为1。按照特征的行处理数据。目的是在于样本向量在点乘运算或者其他核函数计算相似性时,拥有统一的标准。
2)特征标准化:
0-1 标准化:
x(标准化)=(x-最小值)/(最大值-最小值)
按照列处理,通过求Z-score的方法,将样本的特征值转化到同一量纲下。
x(标准化)=(x-均值)/标准差
3)连续变量离散化(有监督离散方法:决策树)。二值化处理 : 将细粒度的度量转化为粗粒度的度量,使得特征的差异化更大。取整。
4) 特征多项式的交互:捕获特征之间的相关性
5) 数据分布的倾斜处理:
log变化: log 变化倾向与拉高那些落在较低范围内的自变量取值,压缩那些落在较高的幅度范围内的自变量的取值,log 变化能给稳定数据的方差,使得数据的分布接近正太分布并使得数据与分布的均值无关。Box_Cox 也有相似的效果,出现负数,使用常数进行偏移。
6) 缺失值处理
数据补全(用0替换 ,平均数替换 ,众数替换 ,预测模型替换),删除缺失行,不处理
离散型:
1) onehot 编码: 可以将离散特征扩展到欧式空间,离散特征的某个取值就对应欧式空间的某个点。特征之间的距离计算或相似度计算是非常重要的,常用的距离或者相似性计算都是在欧式空间的相似度计算,计算余弦相似性,基于的是欧式空间。onehot 会让距离的计算更加合理。
2 )dummy encoding
哑变量编码
3 )label-encoding
标签编码
4 )count-Encoding
频数编码 (可以去量纲化,秩序,归一化)
将分类变量替换为训练集中的计数,对线性和非线性算法都很有用,可以对异常值敏感,可以添加对数转化,适用于计数,用1替换看不见的变量,可能会发生冲突: 相同的编码,不同的变量。
5 )Target encoding
二分类 用目标变量中的某一类的比例来编码
为每个分类变量提供唯一的数字ID,适用于非线性基于树的算法,不增加维度,
6 )Hash encoding :避免及其稀疏的数据
基于树的方法不需要进行特征的归一化,例如随机深林,bagging和boosting等,基于参数或距离的模型,都需要归一化。
过采样对少数类样本进行了多次复制, 扩大了数据规模, 增加了模型训练的复杂度, 同时也容易造成过拟合。
1)过采样单纯重复了正例(少例),可能放大噪声,风险是过拟合。如,正50例 负950例 正样本复制10次 新训练集500+950。相对于欠采样没有导致数据信息的损失,对较少类别的复制增加了过拟合的可能性。
2)欠采样抛弃了大部分反例(多例),浪费数据,模型偏差较大。另一种做法是反复欠采样,把多例分成不重叠的N份,分别与少例组合,训练N个模型,然后组合。缺点是训练多个模型开销大,组合时可能有额外错误,少例被反复利用,风险是过拟合。如,正50例 负950例 负样本中随机选10% 新训练集95+50。平衡数据的同时减少了数据量,加速了训练。数据减少影响模型的特征学习能力和泛化能力。
3)SMOTE相较于一般的过采样,降低了过拟合,是soft 过采样,抗噪能力强,缺点是运算开销大,可能会生成异常点。
预测值 |
|||
真实值 |
0(负例) |
1(正例) |
|
0(负例) |
TN(正确预测负例) |
FP(预测为正,实际为负) |
|
1(正例) |
FN(预测为负,实际为正) |
TP(正确预测正例) |
准确率 accuracy=(TN+TP)/(TN+FP+FN+TP)。正确预测的正负例样本数与所有样本数量的比值。
召回率 recall=TP/(TP+FN)=sensitive。正确预测正例数在实际预测正例数中的比例。
正例命中率(精确率)precision= TP/(TP+FP)。正确预测正例数在预测正例数中的比例。
负例覆盖率 specificity = TN/(TN+FP)。正确预测的负例数在实际负例数中的比例。
ROC曲线的横坐标为1-specificity,纵坐标为sensitive。
ROC曲线下的面积为AUC,值越大越好,通常大于0.8时,模型基本可以接受。
L1和L2是正则化项,又叫做罚项,是为了限制模型的参数,防止模型过拟合而加在模型目标损失函数后面的一项。加入正则化项就是在原来目标函数的基础上加入了约束。当目标函数的等高线和L1,L2范数函数第一次相交时,得到最优解。
1)L1是模型各个参数的绝对值之和。L2是模型各个参数的平方和。
2)L1会趋向于产生少量的特征,而其他的特征都是0.
因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0 ,产生稀疏权重矩阵
L2会选择更多的特征,这些特征都会接近于0。
最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0
正则化项L1和L2的区别 - 岁月静好--lyr - 博客园
即在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。避免辛普森悖论的关键是要同时参考不同用户间的事实全貌。进行指标拆解,对每一个二级指标进行分析,避免被整体结果迷惑。
第一,准确的用户分群在数据分析中是非常重要的,尤其是在免费产品当中,平均用户不仅不存在,而且是误导研发的因素之一,所以关键在于利用特征将用户进行合理划分。
第二,在一个具体的产品中,普适型的数据(如粗暴的对比IOS和Android总体情况)是没有多大参考意义的,一定要细分到具体设备、国家、获取渠道、消费能力等等再进行比对才有价值。
第三,斟酌个别分组的权重,以一定的系数去消除以分组资料基数差异所造成的影响,同时必需了解该情境是否存在其他潜在要因而综合考虑。
描述一组数据集中趋势的量。只有在数据分布偏态(不对称,左偏(平均数<中位数<众数),右偏(众数<中位数<平均数))的情况下,才会出现均值、中位数和众数的区别。如果是正态的话,用哪个统计量都行。另外,如果偏态的情况特别严重的话,可以用中位数。
其实,我们处理的数据,大部分是对称的数据,数据符合或者近似符合正态分布。此时均值(平均数)、中位数和众数的误差只要在可以接受范围之内即可
平均数是受每个数据的影响,所以有极端值不适合。可靠和稳定,能够最为充分地反映这组数据所包含的信息。
一组数据中如果有特别大的数或特别小的数时,一般用中位数。
一组数据比较多(20个以上),范围比较集中,一般用众数。
他们的适用范围不同。正态分布是所有分布趋于极限大样本的分布,属于连续分布.二项分布与泊松分布则都是离散分布,二项分布的极限分布是泊松分布、泊松分布的极限分布是正态分布.即np=λ,当n很大时,可以近似相等。
FROM -> ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT->UNION -> ORDER BY ->LIMIT