文章來源於:python與資料分析
對於很多產品來說,分析使用者行為都是非常重要的。使用者分析能推動產品的迭代,為精準行銷提供一些定製化服務,驅動我們做一些產品上的決策。常用的使用者專題分析方法,包括使用者分群、留存分析、轉化分析、行為路徑分析和事件分析、使用者畫像、使用者增長等。
那麼,本篇文章會為大家重點介紹使用者行為路徑分析,並結合視覺化圖表 — — 桑基圖,來實現落地。
一、什麼是使用者路徑?
使用者路徑,就是使用者在網站或 APP 中的訪問行為路徑,為了衡量網站/APP的最佳化效果或者行銷推廣效果,瞭解使用者的行為偏好,要對訪問路徑的資料進行分析。
二、使用者路徑分析的價值
使用者路徑分析和轉化分析有點類似,轉化分析能告訴我們最終有多少使用者成功轉化,多少使用者流失了。可這些流失的使用者都去了哪?他們在流失前都有什麼行為?這些問題轉化分析都無法告訴我們,因此我們需要對使用者的行為路徑進行分析,以幫助我們更深入瞭解流失背後的原因。行為路徑分析相比於轉化分析記錄的資訊要更廣。
使用者路徑分析,以目標事件為起點|終點,透過描述使用者的行為路徑,可以檢視某個事件節點使用者的流向,科學的路徑分析能夠帶來以下價值:
視覺化使用者流向,對海量使用者的行為習慣形成宏觀瞭解
透過使用者路徑分析,可以將整個使用者路徑的上下游進行視覺化展示。即可看到使用者群體的登入,跳轉、流失、成交等事件的情況。營運人員可透過使用者整體的行為路徑找到不同行為間的關係,挖掘規律並找到瓶頸。
定位影響轉化的因素,推動產品的最佳化與改進
路徑分析對產品設計的最佳化與改進有著很大的幫助,瞭解使用者從登入到購買整體行為的主路徑和次路徑,根據使用者路徑中各個環節的轉化率,發現使用者的行為規律和偏好,也用於監測和定位使用者路徑走向中存在的問題,判斷影響轉化的主要因素和次要因素,也可以發現某些冷門的功能點。
三、路徑分析與漏斗分析的區別
行為路徑分析是用來追蹤使用者從某個事件開始到某個事件結束過程中的全部動線的分析方法。轉化漏斗是人為定義的,而對於使用者的行為路徑,我們雖然可以透過產品設計進行引導,但卻無法控制。因此我們分析使用者的行為路徑可以瞭解使用者的實際操作行為,讓產品順應使用者,透過最佳化介面互動讓產品用起來更加流暢和符合使用者習慣,產出更多價值。
所以,簡單來說:
漏斗分析:人為設定一條或者若干條漏斗,先有假設再資料驗證。
路徑分析:基於使用者所有行為,挖掘出若干條重要的使用者路徑,先有資料再驗證假設。
四、用程式碼實現 — 桑基圖
桑基圖,它的核心是對不同點之間,透過線來連線。線的粗細代表流量的大小。
很多工具都能實現桑基圖,比如:Excel、tableau,我們今天要用 Pyecharts 來繪製。
因為沒有使用者行為路徑相關的公開資料,所以本次實現視覺化是根據泰坦尼克號,其生存與遇難的人的資料,來分析流向路徑。學會思路,你也可以換成自己公司的使用者行為埋點資料。
讀取資料
資料來源:https://www.kaggle.com/c/titanicfrom pyecharts import options as opts
from pyecharts.charts import Sankey
import pandas as pddata = pd.read_excel('/Users/wangwangyuqing/Desktop/train.xlsx')
data
整理資料結構:父類→子類→值
從父類到子類,每相鄰的兩個分類變數都需要計算,使用 Pandas 中資料透視表,計算後的資料縱向合併成三列。
lis = data.columns.tolist()[:-1]
lis1 = lis[:-1]
lis2 = lis[1:]data1 = pd.DataFrame()
for i in zip(lis1,lis2):
datai = data.pivot_table('ID',index=list(i),aggfunc='count').reset_index()
datai.columns=[0,1,2]
data1 = data1.append(datai)
data1
生成節點資料
需要把所有涉及到的節點去重規整在一起。列表內巢狀字典的形式去重彙總。
# 生成nodes
nodes = []
# 先新增幾個頂級的父節點
nodes.append({'name':'C港口'})
nodes.append({'name':'Q港口'})
nodes.append({'name':'S港口'})
# 新增其他節點
for i in data1[1].unique():
dic = {}
dic['name'] = i
nodes.append(dic)
nodes
組織資料:定義節點和流量
資料從哪裡流向哪裡,流量(值)是多少,迴圈+字典來組織資料
links = []
for i in data1.values:
dic = {}
dic['source'] = i[0]
dic['target'] = i[1]
dic['value'] = i[2]
links.append(dic)
links
資料視覺化
c = (
Sankey(init_opts=opts.InitOpts(width="1200px", height="800px",theme='westeros'))
.add(
"",
nodes=nodes,
links=links,
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),
label_opts=opts.LabelOpts(position="right"),
)
.set_global_opts(title_opts=opts.TitleOpts(title="桑基圖"))
.render("/Users/wangwangyuqing/Desktop/image.html")
)
五、總結
桑基圖是分析使用者路徑的有效方法之一,能非常直觀地展現使用者旅程,幫助我們進一步確定轉化漏斗中的關鍵步驟,發現使用者的流失點,找到有價值的使用者群體,看使用者主要流向了哪裡,發現使用者的興趣點以及被忽略的產品價值,尋找新的機會。
原文連結:https://www.jianshu.com/p/16ccab26360f
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~