AB test | 資料分析師面試必知 !
前言
關於AB test的重要性無需多言,資料、產品等從業人員幾乎必知,好的資料科學家我想一定是知道理解業務比模型更為重要,而AB test就是伴隨著業務增長的利器。
如果你心中的AB test幾乎都沒有用到中心極限定理、假設檢驗、z分佈、t分佈等知識,建議詳細閱讀本文。
本文內容目錄:
A/B test是什麼
A/B test工作原理
進行A/B test的目的是什麼
A/B test流程(面試喜歡問)
A/B test簡例(結合Python實現)
A/B test需要注意的點
A/B test中要知道的統計學知識
1、A/B test是什麼
A / B測試(也稱為分割測試或桶測試)是一種將網頁或應用程式的兩個版本相互比較以確定哪個版本的效能更好的方法。AB測試本質上是一個實驗,其中頁面的兩個或多個變體隨機顯示給使用者,統計分析確定哪個變體對於給定的轉換目標(指標如CTR)效果更好。
2、A/B test工作原理
在A / B test中,你可以設定訪問網頁或應用程式螢幕並對其進行修改以建立同一頁面的第二個版本。這個更改可以像單個標題或按鈕一樣簡單,也可以是完整的頁面重新設計。然後,一半的流量顯示頁面的原始版本(稱為控制元件),另一半顯示頁面的修改版本(稱為變體)。
當使用者訪問頁面時,如上圖灰色按鈕(控制元件)和箭頭所指紅色按鈕(變體),利用埋點可以對使用者點選行為資料採集,並透過統計引擎進行分析(進行A/B test)。然後,就可以確定這種更改(變體)對於給定的指標(這裡是使用者點選率CTR)產生正向影響,負向影響或無影響。
實驗資料結果可能如下:
3、進行A/B test的目的是什麼
A / B test可以讓個人,團隊和公司透過使用者行為結果資料不斷對其使用者體驗進行仔細更改。這允許他們構建假設,並更好地瞭解為什麼修改的某些元素會影響使用者行為。這些假設可能被證明是錯誤的,也就是說他們對特定目標的最佳體驗的個人或團隊想法利用A / B test證明對使用者來說是行不通的,當然也可能證明是正確的。
一次測試一個變化有助於他們確定哪些變化對訪問者的行為產生何種影響,哪些變化沒有影響訪問者的行為。隨著時間的推移,他們可以結合實驗中多次正向變化的效果來展示變體相對於控制元件的可測量的改進。
這樣來說產品開發人員和設計人員可以使用A / B測試來演示新功能對使用者體驗變化的影響。只要目標明確定義並且有明確的假設,使用者參與,產品體驗等都可以透過A / B測試進行最佳化。
5、A/B test簡例(結合Python實現)
例項背景簡述:
某司「猜你想看」業務接入了的新推薦演算法,新推薦策略演算法開發完成後,在全流量上線之前要評估新推薦策略的優劣,所用的評估方法是A/B test,具體做法是在全量中抽樣出兩份小流量,分別走新推薦策略分支和舊推薦策略分支,透過對比這兩份流量下的指標(這裡按使用者點選衡量)的差異,可以評估出新策略的優劣,進而決定新策略是否全適合全流量。
例項A/B test步驟:
指標:CTR
變體:新的推薦策略
假設:新的推薦策略可以帶來更多的使用者點選。
收集資料:以下B組資料為我們想驗證的新的策略結果資料,A組資料為舊的策略結果資料。均為偽造資料。
分析結果(Python):
利用 python 中的 scipy.stats.ttest_ind 做關於兩組資料的雙邊 t 檢驗,結果比較簡單。但是做大於或者小於的單邊檢測的時候需要做一些處理,才能得到正確的結果。
from scipy import stats import numpy as np import numpy as np import seaborn as sns A = np.array([ 1, 4, 2, 3, 5, 5, 5, 7, 8, 9,10,18]) B = np.array([ 1, 2, 5, 6, 8, 10, 13, 14, 17, 20,13,8]) print('策略A的均值是:',np.mean(A)) print('策略B的均值是:',np.mean(B))
Output: 策略A的均值是:6.416666666666667 策略B的均值是:9.75
stats.ttest_ind(B,A,equal_var= False)
output: Ttest_indResult(statistic=1.556783470104261, pvalue=0.13462981561745652)
對其中部分內容做了修改,其中關於AB test流程步驟做了核心修改,目錄後3部分為個人學習思考所得,希望對大家有所幫助。
本文轉載自資料管道
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555699/viewspace-2653832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料分析師必須知道的知識:資料倉儲的特點
- 2020面試必知:中高階工程師面試題集整理(題目+答案)工程師面試題
- Android 中高階面試必知必會Android面試
- 面試:Redis必知必會20問面試Redis
- Python工程師求職必知的經典面試題!Python工程師求職面試題
- Python工程師求職必知的經典面試題Python工程師求職面試題
- AB test 中的AA test有什麼作用?
- 面試必知的web知識點面試Web
- SQL實戰-資料分析師-筆試面試-每日一練SQL筆試面試
- 資料分析師必備技能都有哪些?
- Redis 面試必備知識點Redis面試
- 資料採集與分析的那些事——從資料埋點到AB測試
- JVM知識點總覽:高階Java工程師面試必備JVMJava工程師面試
- leetcode我們必知必會的SQL面試題LeetCodeSQL面試題
- 騰訊 PHP 面試必備知識PHP面試
- 做好招聘分析,HR必知的資料邏輯
- Java面試題必備知識之ThreadLocalJava面試題thread
- Python 必備面試基礎知識-3Python面試
- Python 面試必備基礎知識-1Python面試
- 面試必知:String、StringBuilder、StringBuffer的區別面試UI
- BAT面試必問HashMap原始碼分析BAT面試HashMap原始碼
- 測試工程師必知的10大測試法則工程師
- 5大資料經典模型詳解——資料分析師必須掌握大資料模型
- 程式設計師必知面試技術,程式設計面試IO模型有幾種?分別是什麼?程式設計師面試模型
- 2020年SpringCloud 必知的18道面試題SpringGCCloud面試題
- 面試官: 我必問的容器知識點!面試
- 從事Python資料分析師,必須掌握的Python工具!Python
- 軟體測試工程師必會的面試題目工程師面試題
- 24 個必知必會的系統管理員面試問題面試
- 【JAVA面試資料】程式設計師面試之葵花寶典2Java面試程式設計師
- 【JAVA面試資料】程式設計師面試之葵花寶典1Java面試程式設計師
- 資料分析師要掌握什麼知識和技能?
- 面試高階前端工程師必問之流-stream面試前端工程師
- 前端工程師面試必備(持續更新中)前端工程師面試
- 《大前端進階 Node.js》系列 必知必會必問(面試高頻)前端Node.js面試
- 從設計到歸因 - AB Test 實戰心得
- 高階工程師面試大全- 資料庫篇工程師面試資料庫
- 大資料分析師,比資料分析師厲害在哪大資料