当前位置: 首页 > news >正文

TGI模型- 同期群-评论文本

用户偏好分析 TGI

1.1 用户偏好分析介绍

要分析的目标,在目标群体中的均值 和 全部群体里的均值进行比较, 差的越多说明 目标群体偏好越明显

TGI(Target Group Index,目标群体指数)用于反映目标群体在特定研究范围内强势或者弱势的程度

案例的需求, 高利润的产品投放市场, 找到合适的城市进行投放, 统计不同城市高客单价用户占比的TGI ,找到TGI比较大的城市, 还需要考虑总用户数量不要过少

1.2 代码

import pandas as pd
df = pd.read_excel('data/PreferenceAnalysis.xlsx')
df.head()
df.info()
df.describe()

用户打标 判断每个用户是否属于高客单价的人群

​
df['用户ID'].nunique() # 统计不重复的用户ID数量
# 计算每个用户平均消费金额
user_df = df.groupby(['用户ID'],as_index=False)['实付金额'].mean()
user_df.columns = ['用户ID','平均支付金额']
#%%
def if_high(x):if x>50:return '高客单价'else:return '低客单价'
user_df['用户类别'] = user_df['平均支付金额'].apply(if_high)
user_df

按城市统计, 高客单价人群 低客单价人群的数量

# 针对消费流水表, 去重, 用户ID 省份 城市 进行去重, 去重之后的数据,在与前面计算出来的用户标签进行关联
df_dup = df.drop_duplicates(subset=['用户ID','省份','城市'])
​
df_merge = pd.merge(user_df,df_dup,on='用户ID',how='left')
df_merge=df_merge[['用户ID', '平均支付金额', '用户类别','省份', '城市']]
df_merge.head()
#%%
df_result = df_merge.pivot_table(index=['省份','城市'],columns='用户类别',values='用户ID',aggfunc='count')
df_result.reset_index(inplace=True)

发现数据中有缺失值, 对缺失值进行处理

df_result.info()
#%%
#  分省份,城市 统计高客单价,低客单价用户数量的时候, 发现数据中有缺失值, 缺失的原因是某些城市没有这一类型的用户, 此时可以使用0来进行填充
df_result.fillna(0,inplace=True)
df_result.info()
#%%
df_result[df_result['低客单价']==0]

计算用户总数和高客单价占比

df_result['用户总数'] = df_result['低客单价']+df_result['高客单价']
df_result['高客单价占比'] = df_result['高客单价']/df_result['用户总数']

计算TGI target Group index 目标群体指数

df_result.info()
#%%
df_result['高客单价'].sum()/df_result['用户总数'].sum()
#%%
df_result['整体高客单价占比'] = df_result['高客单价'].sum()/df_result['用户总数'].sum()
#%%
df_result['TGI'] = df_result['高客单价占比']/df_result['整体高客单价占比'] *100

过滤掉用户数量太少的城市, 给出结论

user_count_mean = df_result['用户总数'].mean()
df_result[df_result['用户总数']>user_count_mean].sort_values(by='TGI',ascending=False)

同期群分析

使用场景

  • 电商场景:比较不同月份客群的留存情况, 需要比较的是过了一个月(+1月)留存率,过了两个月(+2月)留存率....

  • 金融信贷的场景:比较不同月份客群的违约情况, 需要比较的是过了一个月(+1月)违约率,过了两个月(+2月)违约率....

  • 不能直接使用当前月份的数据直接做对比

使用同期群分析的时候, 周期可以调整, 指标可以换,可以把每一月份的数据按照其它维度进行拆解

  • 比较客群留存情况把渠道考虑进来

案例: 计算了用户留存情况

  • 每个月新增的用户, 当前有购买的用户ID - 之前月份也出现过的用户ID

  • 留存使用复购来表示

评论文本分析

基本数据的处理

  • 从评星中获取好评中评差评分类

  • 从评价的时间中, 截取年月的数据

  • 评论文本内容, 进行分词, 统计不同单词出现的次数(计算词频)

    • 中文的评论, 分词是需要处理的部分, 可以使用 jieba这个库对中文进行分词

    • 英文 词形还原过程 given → give been → be 可以使用NLTK库

    • 无论中文/英文都要处理的 去停用词 stopwords 没有意义的连词,代词,介词

      • 英文 of the

      • 中文 的地 得 ...

      • 可以从网上下载停用词表

      • 统计词频的时候不统计停用词

从评论的数量, 判断出销量,按照时间的维度, 绘制折线图, 通过评论数量的波动, 发现销量的变化规律

从评论的词频统计中, 可以知道

  • 如果是差评, 大家都在吐槽什么, 发现产品的缺点

  • 如果是好评, 大家都在夸什么

http://www.lryc.cn/news/373396.html

相关文章:

  • ESP32 BLE学习(0) — 基础架构
  • 【JAVA】Java中Spring Boot如何设置全局的BusinessException
  • pdf.js实现web h5预览pdf文件(兼容低版本浏览器)
  • SSID简介
  • PS通过GTX实现SFP网络通信1
  • 前端面试项目细节重难点(已工作|做分享)(九)
  • 区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测
  • 抢占人工智能行业红利,前阿里巴巴产品专家带你15天入门AI产品经理
  • MEMS:Lecture 16 Gyros
  • Java中List流式转换为Map的终极指南
  • 【秋招突围】2024届秋招笔试-小红书笔试题-第一套-三语言题解(Java/Cpp/Python)
  • HAL库开发--STM32的HAL环境搭建
  • 【DPDK学习路径】七、创建RX/TX队列
  • 【ArcGISProSDK】OpenItemDialog打开文件对话框
  • TensorFlow2.x基础与mnist手写数字识别示例
  • 大数据开发语言Scala入门
  • 【CDN】逆天 CDN !BootCDN 向 JS 文件中植入恶意代码
  • 摆脱Jenkins - 使用google cloudbuild 部署 java service 到 compute engine VM
  • 【CS.PL】Lua 编程之道: 控制结构 - 进度24%
  • 从“数据孤岛”、Data Fabric(数据编织)谈逻辑数据平台
  • vuex4.x 升级pinia,router 中使用同步组件导致项目启动失败
  • 0. 云原生之基于乌班图远程开发
  • C++ 字符串处理5-手机号邮箱如何脱敏处理
  • 【lesson8】云备份服务端完整版代码
  • AI办公自动化:kimi批量搜索提取PDF文档中特定文本内容
  • 基于C#开发web网页管理系统模板流程-总集篇
  • 什么是DMZ?路由器上如何使用DMZ?
  • 【bugfix】解决Redis缓存键清理问题
  • 泛微开发修炼之旅--15后端开发连接外部数据源,实现在ecology系统中查询其他异构系统数据库得示例和源码
  • 弹幕逆向signature、a_bogus