- 博客(47)
- 收藏
- 关注
原创 B站:AB test [下]
e.g. 加速了0.003s,在理论的statistics上显著,但是人眼人耳是无法感知的!Focus在:AB Test结束后,如何进行显著性检验?(以判断改动是否有效果)值得注意的是:统计上显著并不意味着现实中显著!引入:Z检验和T检验。
2023-09-11 11:46:24
251
原创 B站:AB Test 知识全解
3、计算实验所需的最小样本量(trade off:n越大,实验结果越可信;但n过大,会对用户造成不良影响),每一个实验组所需的样本量:[用到了“大数定律”和“中心极限定律”]在正式开始前,会用“小流量”去看一段时间“灰度实验”(验证改动不会造成特别“极端的影响”)1、在实验开始前,找产品、项目经理等确认:实验需要验证的改动点(一次只能看一个!α:犯第一类错误的概率,而1-α(没有犯第一类错误的概率)是置信水平。②比率类指标(通过多个指标计算得到,如:点击率、转化率、复购率)4、结合日活量,计算实验周期。
2023-09-09 23:49:11
325
原创 CSDN: ABTest流量分层分桶机制
如果因为新实验的上线而导致整个流量群体的模型都更改了,从统计学的角度讲,模型之间的对比关系没有变化。,时间的统一性有效的规避了因为时间、季节等因素带来的影响;,从各项指标上观察用户对不同交互、流程、策略、算法等反馈,进而对产品进行迭代改进。,怎么决定对哪些用户进行新策略、算法A的尝试,对哪些用户保持原有算法B进行对照?流量群体对于新模型会有一定的适应期,而适应期相对于稳定期的效果一般会差一点。本文的goal:在进行了模型的线下迭代并且有了提升之后,这样实验模型的频繁上下线不影响主力和潜力流量的用户群体。
2023-09-08 01:34:35
1074
原创 Medium: The misleading AB Test
The problem with that was the fact that too much had changed at once. You should not consider the individual pieces of your product without considering the whole,but you can’t justify gain/loss based on one of many features if you did it all at once.即:不能一次
2023-09-07 11:11:40
100
原创 Medium: Where to Define Qualified users in A/B testing?
局限性: unqualified users will also be considered and mess up experimentation results.
2023-09-05 10:03:53
1385
原创 Medium:How to check the correctness of the AB test?
定律:The larger the group size, the lower the variance, the smaller the probability of Type II error.通常,type 1 error is more important!Estimate the required group size:(code如下)每次都需要做test,比如这个数据跑出来就有问题!
2023-09-04 03:19:58
364
原创 Medium:How to speed up AB test?
2、以系统化的方式记录实验:如搭建历史数据资料库。团队就能围绕什么样的产品处理方法有效、什么样的产品处理方法无效、对哪些用户群有效、对哪些指标有影响以及影响程度如何等问题形成更好的先验信念。1、预先花时间设计实验。二、Better Metrics。三、Fewer Metrics。
2023-09-03 05:35:55
52
原创 Medium:做AB test需要多少时间?
特别注意的是:因为 AB test 有两組,所以需要 18,112 个用户。其中,最关键的是确定:总共需要多少样本数量。2. 问问产品经理,多与团队、经验丰富的人沟通。4. 对AB test的结果始终保持质疑心态。3. 若没有参考,先收集少量数据瞧瞧。
2023-09-01 20:20:59
62
原创 代码随想录算法训练营第44天 | 动态规划part06:完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ。
力扣上没有纯粹的完全背包的题目,所以大家看本篇了解一下 完全背包的理论。后面的两道题目,都是完全背包的应用,做做感受一下。518. 零钱兑换 II。377. 组合总和 Ⅳ。
2023-07-20 00:20:48
140
原创 代码随想录算法训练营第43天 | 动态规划 part05:1049. 最后一块石头的重量 II、494. 目标和、474.一和零。
通过这道题目,大家先粗略了解, 01背包,完全背包,多重背包的区别,不过不用细扣,因为后面 对于 完全背包,多重背包 还有单独讲解。大家重点理解 递推公式:dp[j] += dp[j - nums[i]],这个公式后面的提问 我们还会用到。1049. 最后一块石头的重量 II。很像了,可以尝试先自己思考做一做。416. 分割等和子集。
2023-07-20 00:15:36
102
原创 代码随想录算法训练营第42天 | 01背包问题的两种解决方案(详解)、416.分割等和子集。
虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。如果做过背包类问题,可以先看视频,很多内容,是自己平时没有考虑到位的。如果是直接从来没听过背包问题,可以先看文字讲解慢慢了解 这是干什么的。背包问题,力扣上没有原题,大家先了解理论,今天就安排一道具体题目。01背包问题,你该了解这些!01背包问题,你该了解这些!416. 分割等和子集。本题是 01背包的应用类题目。416. 分割等和子集。
2023-07-17 23:55:38
58
原创 代码随想录算法训练营第41天 | LeetCode343. 整数拆分、LeetCode96. 不同的二叉搜索树。
今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。96.不同的二叉搜索树。96.不同的二叉搜索树。
2023-07-17 23:50:14
170
原创 代码随想录算法训练营第39天 | LeetCode62. 不同路径、LeetCode63.不同路径II。
从递归公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 中可以看出,一定是从左到右一层一层遍历,这样保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值;下标(0, j)的初始化情况同理;那么很自然,dp[i][j] = dp[i - 1][j] + dp[i][j - 1],因为dp[i][j]只有这两个方向过来;这样就可以保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值的;
2023-07-14 00:38:58
562
原创 代码随想录算法训练营第38天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。
很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于明确说。本题大家先自己想一想, 之后会发现,746. 使用最小花费爬楼梯。509. 斐波那契数。和 斐波那契数 有点关系。
2023-07-14 00:35:22
94
原创 代码随想录算法训练营第37天 | 738.单调递增的数字、968.监控二叉树、总结。
可以看看贪心算法的总结,贪心本来就没啥规律,能写出个总结篇真的不容易了。本题是贪心和二叉树的一个结合,比较难,一刷大家就跳过吧。968.监控二叉树 (可以跳过)738.单调递增的数字。
2023-07-12 21:25:18
132
原创 代码随想录算法训练营第36天 | 435. 无重叠区间、763.划分字母区间、56. 合并区间。
今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!做过了也就会了,没做过就很难想出来。56. 合并区间 --435. 无重叠区间。763.划分字母区间。本题相对来说就比较难了。
2023-07-12 21:17:55
104
原创 代码随想录算法训练营第35天 | 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球。
860.柠檬水找零本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。406.根据身高重建队列本题有点难度,。
2023-07-11 07:59:22
39
原创 代码随想录算法训练营第34天 | 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果。
本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。本题有点难度,不太好想,推荐大家熟悉一下方法二。处理好一边再处理另一边,不要两边想着一起兼顾。1005.K次取反后最大化的数组和。,后面还会有题目用到这个思路。本题涉及到一个思想,就是想。
2023-07-10 22:35:11
95
原创 代码随想录算法训练营第32天 |122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II。
本题同样不容易想出来。贪心就是这样,有的时候 会感觉简单到离谱,有时候,难的不行,主要是。本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解!122.买卖股票的最佳时机II。
2023-07-08 11:21:19
143
原创 代码随想录算法训练营第31天 | 贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和 。
基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。,所以大家了解贪心算法 就了解它没有规律的本质就够了。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。不用花心思去研究其规律, 没有思路就立刻看题解。贪心算法其实就是没有什么规律可言。
2023-07-08 08:40:35
126
原创 代码随想录算法训练营第30天| 332.重新安排行程、51. N皇后 、37. 解数独。
332.重新安排行程(可跳过)51. N皇后(可跳过)37. 解数独(可跳过)今天这三道题都非常难!
2023-07-06 08:01:29
135
原创 代码随想录算法训练营第29天 | 491.递增子序列、46.全排列、47.全排列 II。
47.全排列 II本题 就是我们讲过的 40.组合总和II 去重逻辑 和 46.全排列 的结合,可以先自己做一下,然后重点看一下 文章中 我讲的拓展内容。used[i - 1] == true 也行,used[i - 1] == false 也行。
2023-07-05 23:49:11
109
原创 代码随想录算法训练营第28天 | 93.复原IP地址、78.子集、90.子集II。
大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。其实子集也是一种组合问题,因为它的集合是无序的,子集{1,2} 和 子集{2,1}是一样的。子集问题,就是收集树形结构中,每一个节点的结果。整体代码其实和 回溯模板都是差不多的。本来是很有难度的,不过 大家做完。本质:上一题的一个拓展、延伸!的基础上加上了去重,去重我们在。子集问题、组合问题、分割问题。之后,本题就容易很多了。都抽象为一棵树的话,
2023-07-04 19:59:49
34
原创 代码随想录算法训练营第27天 | 39. 组合总和、40.组合总和II、131.分割回文串。
注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。Note:若有0就会陷入死循环 --> 题干条件都是正整数。总结:切割问题/组合问题 都可以与回溯算法结合起来解题!大家先看视频来理解 分割问题,明天还会有一道。Conclusion:尽量做到方法触类旁通。
2023-07-03 07:51:31
126
原创 代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合。
本题大家刚开始做会有点难度,先自己思考20min,没思路就直接看题解。问题理解了,本题就容易一些了。17.电话号码的字母组合。216.组合总和III。1、也涉及到剪枝的问题。
2023-06-30 22:47:22
49
原创 代码随想录算法训练营第24天 | 回溯算法理论、77. 组合。
对着 在 回溯算法理论基础 给出的 代码模板,来做本题组合问题,大家就会发现。是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路。,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。在讲解二叉树的时候,就给大家介绍过回溯。
2023-06-30 22:41:30
182
原创 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树。
669. 修剪二叉搜索树这道题目比较难,比和难的多,建议先看视频理解。题目链接/文章讲解:视频讲解:note:不能盲目删除,以小于min的节点为例,该被删小节点的右子树中的节点很可能会满足要求,因此会被误杀而导致不正确。当然本题也没有必要去重构!--> 还是“递归法”!108.将有序数组转换为二叉搜索树本题就简单一些,可以尝试先自己做做。本质就是寻找分割点,分割点作为当前节点,然后递归左区间和右区间。Ans:分割点就是数组中间位置的节点。Q:如果数组长度为偶数,中间节点有两个,取哪一个。
2023-06-29 06:56:38
52
1
原创 代码随想录算法训练营第22天 | 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点。
235. 二叉搜索树的最近公共祖先相对于二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。那么本题是二叉搜索树,二叉搜索树是有序的,那得好好利用一下这个特点。在有序树里,如果判断一个节点的左子树里有p,右子树里有q呢?因为是有序树,所有 如果 中间节点是 q 和 p 的公共祖先,那么 中节点的数组 一定是在 [p, q]区间的。即 中节点 > p && 中节点 < q 或者 中节点 > q && 中节点 < p。那么。
2023-06-28 07:40:46
66
1
原创 代码随想录算法训练营第21天 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先。
二叉树进行递归时,对于有没有返回值就是要看我们是不是要处理一整条边,需注意返回之后应该如何处理。另外对于需要从底向上进行操作的二叉树一般都是后序遍历,因为后序遍历存在着由底向上的回溯过程,这个回溯过程就可以看做从下到上的递归逻辑。
2023-06-27 08:14:17
83
1
原创 代码随想录算法训练营第20天 | 关于最大二叉树、关于合并二叉树、关于二叉搜索树中的搜索、关于验证二叉搜索树。
为什么pre放在外面而不是方法里面:因为放在外面才可以被递归的每一层访问到,里面的话就是局部变量,每一层都相互独立,就起不到一层的修改让另一层可见的作用了。pre变量的作用:这个就是记录二叉搜索树中当前节点的前一个用来比较的节点。,因为先构造中间节点,然后递归构造左子树和右子树。Note:前序、中序、后序都是ok的!大多数题都是用递归是最直观简单好写的。中序遍历搞定一切问题!
2023-06-26 07:27:31
73
1
原创 代码随想录算法训练营第18天 | 513.找树左下角的值、112. 路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树。
之前我们讲的二叉树题目都是各种遍历二叉树,这次开始构造二叉树了,思路其实比较简单,但是真正代码实现出来并不容易。所以要避免眼高手低,踏实地把代码写出来。我同时给出了添加日志的代码版本,因为这种题目是不太容易写出来调一调就能过的,所以一定要把流程日志打出来,看看符不符合自己的思路。大家遇到这种题目的时候,也要学会打日志来调试(如何打日志有时候也是个技术活),不要脑动模拟,脑动模拟很容易越想越乱。最后我还给出了。
2023-06-24 11:36:09
93
1
原创 代码随想录算法训练营第16天 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数。
完全二叉树会因为其独有的性质使得求节点数更容易,但是首先我们得判断正确,到底是不是 完全二叉树!,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。有时候,精简的代码并不能很好的反映出数据结构的原理。需要了解,普通二叉树 怎么求,完全二叉树又怎么求?222.完全二叉树的节点个数(优先掌握递归)111.二叉树的最小深度 (优先掌握递归)先看视频讲解,和最大深度 看似差不多,其实。note:此题并没有求“最大深度”那么直观!104.二叉树的最大深度 (优先掌握递归)分成:普通二叉树和完全二叉树。
2023-06-22 09:17:41
51
1
原创 代码随想录算法训练营第15天 | 树的层序遍历及其应用
层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。需要借用一个辅助数据结构即。队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。
2023-06-21 07:57:09
45
原创 代码随想录算法训练营第14天 | 递归遍历、迭代遍历、统一迭代。[二叉树part01]
需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义。统一迭代 (基础不好的录友,迭代法可以放过)这是统一迭代法的写法, 如果学有余力,可以掌握一下。二叉树的三种递归遍历掌握其规律后,其实很简单!迭代遍历 (基础不好的录友,迭代法可以放过)区别好:前序、中序、后序。递归遍历 (必须掌握)
2023-06-20 07:17:45
136
原创 代码随想录算法训练营第13天 | 239. 滑动窗口最大值、347.前 K 个高频元素。
在栈与队列系列中,我们强调栈与队列的基础,也是很多同学容易忽视的点。使用抽象程度越高的语言,越容易忽视其底层实现,而C++相对来说是比较接近底层的语言。我们用栈实现队列,用队列实现栈来掌握的栈与队列的基本操作。接着,通过括号匹配问题、字符串去重问题、逆波兰表达式问题来系统讲解了栈在系统中的应用,以及使用技巧。通过求滑动窗口最大值,以及前K个高频元素介绍了两种队列:单调队列和优先级队列,这是特殊场景解决问题的利器,是一定要掌握的。
2023-06-19 08:21:15
35
原创 代码随想录算法训练营第11天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值。
流程:遇到数字就push进stack中,遇到字符串就弹出stack顶最上面的2个数字并做相应的“+”、“-”、“*”、"%"。然后把结果再次push进stack中。注意,本题还有类似“剪枝预处理”的操作:如果字符串长度为奇数,那必然存在不匹配的括号!遍历数组当前元素时候,前一个元素是什么。本题不难,但第一次做的话,会很难想到。逆波兰表达式&实质:二叉树的后序遍历。,所以先看视频,了解思路再去做题。”的操作,因为栈帮助我们记录了。code:①使用stack。思考:有哪些不匹配的场景?接下来是栈的经典应用!
2023-06-17 08:27:08
48
1
原创 代码随想录算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈。
把que1最后面的元素以外的元素都备份到que2,然后弹出最后面的元素,再把其他元素从que2导回que1。但是依然还是要用两个队列来模拟栈,只不过没有输入和输出的关系,而是另一个队列完全用来备份的!同学可能依然想着用一个输入队列,一个输出队列,就可以模拟栈的功能,仔细想一下还真不行!所以用栈实现队列, 和用队列实现栈的思路还是不一样的,这取决于这两个数据结构的性质。大家惯性思维,以为还要两个队列来模拟栈,其实只用一个队列就可以模拟栈了。,那么我们先说一说两个队列来实现栈的思路。232.用栈实现队列。
2023-06-16 12:13:38
66
1
原创 代码随想录算法训练营第9天 | 28. 实现 strStr()、459.重复的子字符串。
本文中一共介绍了leetcode上九道使用双指针解决问题的经典题目,除了链表一些题目一定要使用双指针,其他题目都是使用双指针来提高效率,一般是将O(n^2)的时间复杂度,降为O(n)。
2023-06-15 08:04:50
42
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人