用戶行為分析(Python+Tableau)項目實戰


一,課題研究和背景介紹

1,課題研究:淘寶用戶行為分析

2,背景介紹:

  隨着移動互聯網的不斷發展,電商行業也從以前的粗獷式發展進入到了精准的精細化時代,就淘寶而言,現在依據大數據的發展,實現了千人千面的購物,每一個人都是獨立的,但是又不都是獨立的,背后都有一整套完整的用戶畫像和營銷體系,在這樣的背景下,本文將基於部分的電商用戶數據進行分析。下圖是一張比較全面的用戶在電商平台進行購物的流程圖,能夠和 AAARR 模型匹配起來。

 

 

 二,數據

1,數據源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=46

 

 

 2,數據描述:

Data Description
In many cases we need to develop an individualized recommendation system for a subset of all items. When fulfilling such task, besides utilizing the user behavior data in such subset of items, we also need to utilize more comprehensive user behavior data. Notations:
U– The set of users
I– The whole set of items
P– The subset of items, P ⊆ I
D– The user behavior data set in all the set of all items.
Our objective is to develop a recommendation model for users in U on the business domain P using the data D.

The data contains two parts. The first part is the dataset D, the mobile behavior data of users in the set of all items, which is corresponding to table

數據描述

在許多情況下,我們需要為所有項目的一個子集開發個性化的推薦系統。在完成這樣的任務時,除了利用這些項目子集中的用戶行為數據外,我們還需要利用更全面的用戶行為數據。符號:

U -用戶的集合

I -整個項目集

P -項的子集,P⊆I

D -用戶行為數據集在所有項目的集合中。

我們的目標是使用數據D為U中的用戶開發一個關於業務域P的推薦模型。

數據包含兩部分。第一部分為數據集D,即用戶在所有項集合中的移動行為數據,對應於表

3,數據字段含義

 

 

 

tianchimobile_recommend_train_user,with the following columns

 

Column      Description

user_id 用戶的身份

item_id 用戶的身份

behavior_type 用戶行為類型

user_geohash 緯度(行為發生時的用戶位置,可能為null)

item_category 項目的類別id

time 行為發生的時間

 

The table tianchi_mobile_recommend_train_item corresponds to data (P),  with the following columns: 

 

Column Description

item_id 身份的物品

item geohash 行為發生的用戶位置(可能是null)

item_category 項目的類別id

三,提出問題:

1,分析目標

本次數據分析的目的是找出用戶群體在整個購物過程中的轉化率,找出影響用戶下單的因素,並針對此提出一些改進的建議。所以本文將從流量指標,用戶的轉化率,用戶價值模型,以及商品的銷售情況去進行分析。以下是本文的大綱:

1. 從流量的角度去考慮,分析這一段時間內,用戶的點擊率,獨立訪客數,以及平均訪問量。

2. 分析用戶在不同的時間段的活躍規律

3. 找出最具有價值的核心用戶群體,並采取相應的措施

4. 分析商品的銷售情況,哪些商品最暢銷,優化商品營銷策略

5. 從業務流程去考慮,各流程的轉化率和用戶最終下單之間的影響因素

 

2,數據清理

①導入數據

import pandas as pd

import numpy as np

tb = pd.read_csv(r'X:\Users\orange\Desktop\sss\tianchi_mobile_recommend_train_user.csv')

tb.info()

 

 

 ②剔除重復值

數據集中有600多萬行的數據時重復的,所以我們需要將其剔除掉。最后還有600多萬條的數據集。

tb.duplicated().sum() # 計算有多少重復值的值
tb.drop_duplicates(inplace=True)

 

 ③缺失值處理

本次數據集中user_geohash存在大量的缺失值,共有833萬多缺失,所以直接將該直接刪掉。

tb.isnull().sum()

 

 ④數據一致化處理

首先我們需要將behavior_type由原來的1,2,3,4轉換成分類的字符串,方便我們繼續后續的辨認處理;其次把time 字段拆分成date和time字段,也就是日期和時間,方便我們在不同的時間維度上對用戶的行為進行分析。

def behavior_type(type):
    if type == 1:
        return 'pv'
    elif type == 2:
        return 'favor'
    elif type == 3:
        return 'cart'
    else:
        return 'buy'
tb['behavior_type'] = tb['behavior_type'].apply(behavior_type)
tb['date'] = tb['time'].apply(lambda x:x.split(' ')[0])
tb['time'] = tb['time'].apply(lambda x:x.split(' ')[1])
tb.head()

 最后我們把處理過的數據集保存到一個新的csv文件中。

tb.to_csv('tb_user_2014.csv',index = False)
tb.drop_duplicates('user_id').count() # 查看有多少個用戶

3,分析步驟

3.1.分析用戶行為的漏斗模型

①,點擊,收藏,加入購物車,與購買各有多少數量

tb_behavior_type = tb['behavior_type'].value_counts().reset_index()
(tb_behavior_type['favor'] + tb_behavior_type['cart'])/tb_behavior_type['pv']
tb_behavior_type['buy']/tb_behavior_type['pv']
tb_behavior_type

 

 ②查看用戶從收藏或者計入購物車到下單的轉化率:

用已下單的除於加入購物車或者收藏的人數

tb_behavior_type['buy']/(tb_behavior_type['favor'] + tb_behavior_type['cart'])

③查看付費用戶數在總的用戶數占比有多少呢?

tb_buy = tb[tb['behavior_type'] == 'buy']
tb_buy.drop_duplicates('user_id').count()/10000

 

 ④查看復購率

tb_two_buy = tb_buy.groupby('user_id').count()
tb_two_buy[tb_two_buy['behavior_type'] >= 2].count()

 

 3.2不同時間段下的用戶行為分析

分別以月為周期,以及以每天內的時間為單位來分析用戶的行為,找出用戶活躍的規律。

①用戶每天的活躍規律

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM