01 2021 档案
该文被密码保护。
该文被密码保护。
摘要:1 什么是购物篮分析 购物篮分析(Market basket analysis)是用来挖掘消费者已购买的或保存在购物车中物品组合规律的方法。这个概念适用于不同的应用,特别是商店运营。源数据集是一个巨大的数据 记录,购物篮分析的目的发现源数据集中不同项之间的关联关系。例如,购买鞋的顾客,有10%的可能
阅读全文
摘要:1 价格分布 2 市场大小 3 转化率 4 用户画像+商品画像的使用场景 商品画像可以辅助建立用户标签: 如果一个用户总是购买具有某些标签的商品,就可以为这一类的用户打上标签。 例如购买 高价格、女装、童装、厨房 电器的商品的用户。同时如果一个用户被打上了某些用户标签,就可以为这个 用户推荐更符合这
阅读全文
摘要:1 什么是商品画像体系? 商品画像如同用户画像一样,可以简单理解成是商品海量数据的标签,根据商品的特征、设计、功能、口味、波次、价位段、流行度、销售状况、促销力度、销售渠道差异,将他们区分为不同的类型,然后每种类型中抽取出典型特征,赋予名字、特点、场景、统计学要素等描述。 2 常见的商品画像体系 3
阅读全文
摘要:1 如何构建平台用户的用户画像 微观:参考商户用户画像 宏观:用户偏好、RFM模型 2 用户的基本属性 2.1 用户的性别和年龄 京东电商平台的用户主要是以男性为主,绝大部分的用户年龄在45岁以下,以25-35岁的年轻人居多 2.2 用户的地域分布 京东电商平台中,来自广东的用户最多,其次是北京和江
阅读全文
摘要:1 什么是用户画像体系 2 商户用户画像和平台用户画像的区别 2.1 业务方向 共同的核心业务方向:订单量和交易额 不同的着重点: 平台方的重点是通过提升用户体验、各式精准的营销活动来吸引消费者到平台进行浏览和转化。可以借助用户画像技术,根据用户平时购买的品类、用代金券的情况、购物车的商品分析用户的
阅读全文
摘要:1 问题 京东商城的用户中有一部分购买的用户容易流失, 希望可以通过数据分析圈定这一批用户, 挖掘流失原因, 并且利用运营的方法对他们进行挽留 2 完整流程 2.1 背景 • 购买的用户中有一部分容易流失, 这部分用户的购买影响到总体的收入和订单量 • 业务方希望我们数据分析师能够利用数据分析方法和
阅读全文
摘要:1 什么是数据体系 指标体系是将零散单点的具有相互联系的指标,系统化的组织起来,通过单点看全局,通过全局解决单点的问题。它主要由指标和体系两部分组成。 指标是指将业务单元细分后量化的度量值,它使得业务目标可描述、可度量、可拆解,它是业务和数据的结合,是统计的基础,也是量化效果的重要依据。 2 指标体
阅读全文
摘要:4.8 不同地域的人均订单量 电子图书山西最高, 纸质图书内蒙古最高 4.9 不同地域的购买人数 • 电子图书和纸质图书都是广东最高 4.10 不同地域的总订单量 •从总订单来看, 电子图书广东最高, 纸质图书北京最高 4.11 不同地域的人均金额 •从人均金额来看, 电子图书上海最高, 纸质图书河
阅读全文
摘要:1 项目背景 电子图书和纸质图书销售的数据挖掘用户的行为规律, 包括不同类目, 不同地区的购买差异和用户属性差异等等并给业务给出指导性的建议 1.1 订单数据 1.2 用户信息数据 2 分析思路 3 整体数据: • 在单均金额和人均金额上 电子图书都比图书高 • 电子图书的订单有效率远比图书要高 订
阅读全文
摘要:1 什么是商业数据分析 1.1商业数据分析的4个层次 • (1)描述性分析-发生了什么? 故名思义,该层次主要是对已经发生的事实用数据做出准确的描述。比如某企业本月订单签约额比上月增加100万,至1100万,但是订单履约率从上月的98%下降到了95%,库存周转率从上月的0.8下降到了0.7 • (2
阅读全文
摘要:1 数据化运营的发展历程 1.1 从4P到4C 1.2 从4C到3P3C 2 数据化运营是什么和为什么 2.1 什么是数据化运营 • 以企业级海量数据的存储和分析挖掘为核心支持的, 企业全员参与的, 以精准、细分和精细化为特点的企业运营制度和战略 • 简单理解: 在企业常规运营的基础上革命性的添加数
阅读全文
摘要:1 需求 有一天,你的运营同事找到你,说京东电商平台最近小家电类目的订单数量、产品浏览量、搜索数量等都有所下降, 现在部门计划对小家电类目进行一次季末促销活动,希望你能针对小家电的用户特征给出一些建议。 2 需求拆解 3 订单数据介绍 4 用户的基本属性 4.1 用户的性别和年龄 4.2 用户的地域
阅读全文
摘要:1 Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。 2 Fork/Join 框架与线程池的区别 采用 “工作窃取”模式(work-stealing):
阅读全文
摘要:1 ScheduledExecutorService 一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。 package com.atguigu.juc; import java.util.Random; import java.util.concurrent.Ca
阅读全文
摘要:线程池 第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定
阅读全文
摘要:1 线程八锁 一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一一个线程去访问这些synchronized方法 锁的是当前对象this,被锁定后,其它的线程都不能进入到
阅读全文
摘要:读-写锁 ReadWriteLock ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。。 ReadWriteLock 读取操作通常不会改变共享资源,但执行写入操作时,必
阅读全文
摘要:Condition Condition 接口描述了可能会与锁有关联的条件变量。这些变量在用法上与使用 Object.wait 访问的隐式监视器类似,但提供了更强大的功能。需要特别指出的是,单个 Lock 可能与多个 Condition 对象关联。为了避免兼容性问题,Condition 方法的名称
阅读全文
摘要:显示锁 Lock 在 Java 5.0 之前,协调共享对象的访问时可以使用的机制只有 synchronized 和 volatile 。Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。 ReentrantLock 实现了
阅读全文
摘要:1 Callable 接口 Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且
阅读全文
摘要:CountDownLatch Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器的性能。 CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 闭锁可以延迟线程的进度直到其
阅读全文
摘要:1 ConcurrentHashMap Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器的性能。 ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对与多线程的操作,介于 HashMap 与 Has
阅读全文
摘要:1 CAS 算法 CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问。 CAS 是一种无锁的非阻塞算法的实现。 CAS 包含了 3 个操作数: 需要读写的内存值 V 进行比较的值 A 拟写入的
阅读全文
摘要:内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态,需要确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。 可见性错误是指当读操作与写操作在不同的线程中执行时,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根
阅读全文
摘要:1 新增方式一:实现Callable接口 与使用Runnable相比, Callable功能更强大些 相比run()方法,可以有返回值 方法可以抛出异常 支持泛型的返回值 需要借助FutureTask类,比如获取返回结果 Future接口 可以对具体Runnable、Callable任务的执行结果进
阅读全文
摘要:生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如果店中有
阅读全文
摘要:1 通信方法 1.1 wait() 与 notify() 和 notifyAll() wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有权后才能继续
阅读全文
摘要:银行有一个账户。 有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。 问题:该程序是否有安全问题,如果有,如何解决? 【提示】 1,明确哪些代码是多线程运行代码,须写入run()方法 2,明确什么是共享数据。 3,明确多线程运行代码中哪些语句是操作共享数据的。 拓
阅读全文
摘要:1 实例一 创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式 package com.atguigu.java; /** * 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式 * * 1.问题:卖票过程中,出现了重票、错票 -->出现了线程的安全问题
阅读全文
摘要:1 问题的提出 多个线程执行的不确定性引起执行结果的不稳定 多个线程对账本的共享,会造成操作的不完整性,会破坏数据。 2 模拟火车站售票程序,开启三个窗口售票 1. 多线程出现了安全问题 2. 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个
阅读全文
摘要:1 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: 新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建
阅读全文
摘要:1 创建方式一 package atguigu.java; /** * 多线程的创建,方式一:继承于Thread类 * 1. 创建一个继承于Thread类的子类 * 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中 * 3. 创建Thread类的子类的对象 * 4.
阅读全文
摘要:1 线程的创建和启动 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。 Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体 通过该Thread对象的start()方法来启动这个线程
阅读全文
摘要:1 定义 程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process) 是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:运行中的QQ,运行中的MP3播放器 程序是静
阅读全文
摘要:来源:https://mp.weixin.qq.com/s/PLWovsMDxO0wUrDTMaOh4w Cube相关 GROUPING SETS:使用频率 ★ 类似于kylin中的cube,将多种维度进行组合统计;在一个GROUP BY查询中,根据不同维度组合进行聚合,等价于将不同维度的GROUP
阅读全文
摘要:来源:https://mp.weixin.qq.com/s/PLWovsMDxO0wUrDTMaOh4w 集合 collect_set:使用频率 ★★★★★ 将分组内的数据放入到一个集合中,具有去重的功能; 1 --统计每个用户具体哪些天访问过 2 select 3 user_id, 4 colle
阅读全文
摘要:来源:https://mp.weixin.qq.com/s/PLWovsMDxO0wUrDTMaOh4w 目录 数据准备 数据集 建表语句 窗口函数 row_number:使用频率 ★★★★★ rank :使用频率 ★★★★ dense_rank:使用频率 ★★★★ rank/dense_rank/
阅读全文