用户数据分析理论与最佳实践
这是我参与「第四届青训营 」笔记创作活动的的第十九天
1.用户数据分析
1.做用户数据分析的原因
在企业竞争越来越激烈,获客成本越来越高的背景下,如何高效地优化产品和精细化投放运营是当前企业竞争的关键,而用户数据分析正是我们保持此竞争力的重要手段(难道还有别的手段?有,靠抄袭,靠砸钱),我们通过数据来驱动用户增长、降低成本和提高收益。
当下互联网的行情不太好,大家也知道,企业们也在“勒紧裤腰带过日子“,盲目扩张、砸钱抢市场的情况在当下会收敛很多。
2.方法论
这里我仅指互联网行业,我的理解就是一些有经验的人,体系化的把这些做事的手段和思考进行抽象整合后,沉淀下来作为理论,而“后人”按照这个“套路”来执行就好了。学习方法论,能大大减少你去探索的成本。但是在这个互联网飞速发展的时期,这个套路有可能过时,所以大家需要保持敏锐,不要过于迷信某些方法论。
2.数据分析
1.数据分析全景图
这里包含4个部分。数据源、分析工具、可视化以及贯穿全程的指标体系。
首先我们先看一下数据源,没有数据,我们的数据分析就无从谈起。数据源包括很多种,我们最常见的是埋点和业务DB中的数据以及二次加工的如统计和挖掘出的数据。
有了数据源,我们也不要着急马上去写sql查数,我们看一下有哪些工具来支持我们去做数据分析。企业提供了除了非常基础的sql(也算是一种编程)和代码编程外,还有很多好用的工具,比如可视化查询、分群圈选和当下热门的行为分析工具。
可视化这一块,其实并不是独立的部分,很多分析工具里集成了可视化的能力,但是为了方便同学们理解,我们单独拎出来这一块来讲解。
而指标体系是我们数据分析的脉络,我们做个各种分析其实都会围绕着指标体系来做。指标体系会在真正开始建设之前就进行规划,并在业务发展过程中不断完善。
2.指标体系和指标分级
指标体系:结合业务战略目标和业务场景,系统化梳理构建的指标集合。我们构建的指标集合通常是分级的,以满足不同级别的人的数据使用需求。
3.手游业务指标体系示例
这里除了常见的业务指标还有安全风控、服务质量相关的,比如外挂封禁账号数、应用crash率、fps等。整个指标体系所涵盖的指标数量在复杂的业务场景中,可能几百个。
4.搭建指标体系的价值
- 衡量经营状况
- 统一口径和统一认知
- 团队牵引
- 支撑后续制定目标和衡量目标
- 发现问题
- 定位问题
5.常见的分析工具
6.数据表与SQL
表的基本构成:表名、表字段、表字段类型等。
SQL:结构化查询语言,用来操作表的语言。细分为DDL(数据定义语言)和DML(数据操纵语言)等。
在工作中,这些表的建模和查询sql是需要做精心优化的,以提升查询性能并减少资源浪费。
3.机器学习
1.机器学习概述
- 机器学习就是把无序的数据转换为有用的信息
- 从数据中自动分析获得模型,并利用模型对未知数据进行预测、
- 机器学习算法流程:获取数据、数据探测、特征工程、构建数据集、建模调参、模型评估
2.机器学习算法分类
- 监督非监督学习--取决于训练是否需要人类的监督
- 批量/在线学习--取决于系统是否能持续地从数居流中学习并更新
- 基于实例模型学习--取决于系统是直接把新数据与旧数据比较,还是通过建模来预测
3.机器学习挑战
在机器学习中,面临的挑战主要来自两大模块:糟糕的算法和糟糕的数据
- 算法的问题主要有以下两种
- 过拟合
- 欠拟合
- 数据的问题具体表现为
- 训练数据太少
- 训练数据不具备代表性
- 数据本身质量很差
- 选取的特征没有相关性 在大数据场景下,对资源的要求非常高,比如存储和算力
4.特征工程
1.概述
- 定义:特征工程是将原始数据转化成更好的表达问题本质的特征的过程。
- 意义:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
- 特征工程包含以下几个过程:数据理解、数据预处理、特征构造、特征选择。
2.流程
3.Embedding
Embedding,即嵌入,起先源自于NLP领域,称为「词嵌入(wordembedding)」,主要是利用背景信息构建词汇的分布式表示,最终可以得到一种词的向量化表达,即用一个抽象的稠密向量来表征一个词。 直观上看embedding相当于是对oneHot做了平滑,而oneHot相当于是对embedding做了max pooling。
1.产生过程
2.意义作用
- 解决维度灾难,降低复杂度。
- 解决稀疏容易造成的梯度消失的问题
- 增加语义信息,能够很好地挖掘嵌入实体间的内部关联
3.应用场景
- 在深度学习网络中作为Embedding层
- 作为预训练的Embedding特征向量
- Embedding可以直接作为推荐系统或计算广告系统的召回层或者召回方法之一
5.聚类算法
聚类算法是机器学习中涉及对数据进行分组的一种算法。在给定的数据集中,我们可以通过聚类算法将其分成一些不同的组。在理论上,相同的组的数据之间有相似的属性或者是特征,不同组数据之间的属性或者特征相差就会比较大。聚类算法是一种非监督学习算法,并且作为一种常用的数据分析算法在很多领域上得到应用。
1.常用聚类算法优缺点
| 聚类算法 | 优点 | 缺点 |
|---|---|---|
| 基于距离——K-means | 实现简单快速、聚出的类别相对均匀 | 受初始点选择影响较大、无法自定义距离、无法识别离群点、需要事先确定簇的数量 |
| 基于密度——DBSCAN | 可以识别离群点、对特殊分布效果好 | 聚出的类别欠均匀、受密度定义影响较大、不擅长处理密度不均的数据 |
| 层次聚类 | 对特殊分布效果好、类的层次关系具有一定价值 | 有时聚出的类别欠均匀、内存不友好 |
这些常用聚类方法所依赖的常用聚类特征较为偏向统计学类特征。
2.应用场景
- 指标波动场景。举例:某个重要的KPI发生变化时,我们会思考是不是某个特定人群导致了这个波动,然后针对这样的波动找到应对的办法;
- 精细化运营。举例:在做某个业务的增长,我们会思考哪些是潜力用户,在定位到潜力用户后进一步思考如何更好地承接他们;
- PMF(Product-Market Fit)。即研究给什么样的细分人群提供什么样的内容才能达到最好的匹配效果。
3.K-Means
K-means 聚类算法可能是大家最为熟悉的聚类算法。它在许多的工业级数据科学和机器学习课程中都有被讲解。并且容易理解和实现相应功能的代码
- 首先,我们确定要聚类的数量,并随机初始化它们各自的中心点。为了确定要聚类的数量,最好快速查看数据并尝试识别任何不同的分组。中心点是与每个数据点向量长度相同的向量,是上图中的“x”。
- 通过计算当前点与每个组中心之间的距离,对每个数据点进行分类,然后归到与距离最近的中心的组中。
- 基于迭代后的结果,计算每一类内,所有点的平均值,作为新簇中心。
- 迭代重复这些步骤,或者直到组中心在迭代之间变化不大。您还可以选择随机初始化组中心几次,然后选择看起来提供最佳结果。
k-means的优点是速度非常快,因为我们真正要做的就是计算点和组中心之间的距离;计算量少!因此,它具有线性复杂性o(n)。
另一方面,k-means有两个缺点。首先,您必须先确定聚类的簇数量。理想情况下,对于一个聚类算法,我们希望它能帮我们解决这些问题,因为它的目的是从数据中获得一些洞察力。k-means也从随机选择聚类中心开始,因此它可能在算法的不同运行中产生不同的聚类结果。因此,结果可能不可重复,缺乏一致性。