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.mzph.cn/pingmian/27915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在自己的电脑上搭建我的世界Java版服务器

很多朋友,喜欢玩Minecraft,也希望搭建一个服务器,用于和小伙伴联机; 并且,拥有服务器后,即使所有玩家都下线,“世界”依旧在运行,玩家可以随时参与其中,说不定一上线&am…

有状态服务和无状态服务

有状态服务和无状态服务在不同的业务场景下有不同的应用,以下是一些常见的例子: 有状态服务的场景: 用户会话管理: 用户登录后,会话信息(如用户ID、权限、购物车内容等)需要在服务端保持状态。…

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境)

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境),可作为深度学习信号前处理过程,水个SCI不是问题。 机械设备的状态信号中往往蕴含着大量的设备异常信息。如何从繁多的机械状态信号中提取足…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(五)质量设计方法与工具

第五节 质量设计方法与工具 1 任 务 分 解 法 1.1 概念 任务分解法,又称工作分解结构 (Work Breakdown Structure, 简 称 WBS) 。WBS 指以可交付成果为 导向,对项目团队为实现项目目标并完成规定的可交付成果而执行的工作所进行的层次分解。W…

程序员基本功之git的使用

阿里网盘-资料链接 文章目录 git分布式版本控制工具git的基本概念开发过程中的问题常见的版本控制工具git分布式版本控制工具特点git系统所定制的若干目标git的工作流程图 GIT的安装和常用命令**创建本地git仓库步骤****本地git仓库的使用**git log详解 git分布式版本控制工具…

SpringCloud跨服务远程调用

随着项目的使用者越来越多,项目承担的压力也会越来越大,为了让我们的项目能服务更多的使用者,我们不得不需要把我们的单体项目拆分成多个微服务,就比如把一个商城系统拆分成用户系统,商品系统,订单系统&…

MQTT TCP HTTP 协议对比

目录 1. 类型与用途 2. 通信模式与特性 3. 优缺点 4. 使用场景 MQTT、TCP和HTTP在类型、用途、通信模式、特性以及使用场景等方面存在显著的区别,以下是详细的阐述: 1. 类型与用途 MQTT:MQTT是一种消息传输协议,主要适用于物…

增加软件投入的重要性:提升自动化程度与用户界面设计的价值

一、引言 在许多项目中,硬件系统通常占据了大量预算,而对软件的投入相对较少。这种不平衡往往导致软件自动化程度低、操作不便、界面简陋,过多的人工干预不仅降低了工作效率,还影响了用户体验。特别是对于一些国家项目&#xff0…

matlab:数字信号处理过程(趋势+峰值+包络+滤波+FFT)仿真

数字信号处理 消除趋势找峰值求包络平滑fftclc;clear;close all; figure(1);clf; Fs = 200;%采样频率 T = 1/Fs; %采样周期 N = 300;

「C系列」C 结构体

文章目录 一、C 结构体1. 定义结构体2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体数组6. 结构体指针7. 结构体嵌套 二、C 如何使用结构体1. 定义结构体类型2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体指针6. 在函数中使用结构体7. 注…

docker run的复杂使用

sudo docker run -dit --namenmediacross1.x -v $HOME:$HOME -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri --privileged --networkhost -e DISPLAYunix$DISPLAY -w $HOME nova:nmediacross1.x这个Docker命令相当复杂,包含了许多选项和参数,…

记录一次CTF图片拼图安装工具montage+gaps成功步骤以及踩坑全过程

安装图片拼接工具montage: 1.安装 使用pip install montage无法安装montage工具的师傅可以尝试下面的方法 #Debian apt-get install graphicsmagick-imagemagick-compat#Ubuntu apt-get install graphicsmagick-imagemagick-compat#Alpine apk add imagemagick6#…

安全相关的一些基础知识(持续更新)

目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法(摘要算法) 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里,把随机数的生…

编译rk3568 Android,rk3568_r-user和rk3568_r-userdebug的区别

在 Android 开发环境中,lunch 命令用于选择编译目标设备和构建类型。选择不同的构建类型(如 user 和 userdebug)会影响编译结果的特性和用途。以下是 rk3568_r-user 和 rk3568_r-userdebug 之间的主要区别: user 构建类型 (rk3568_r-user): 目标用户:最终用户(消费者)。…

undetected_chromedriver驱动浏览器结束报错OSError: [WinError 6] 句柄无效

undetected_chromedriver驱动浏览器结束报错OSError: [WinError 6] 句柄无效 问题背景 使用undetected_chromedriver包驱动浏览器结束后报错句柄无效 Exception ignored in: <function Chrome.del at 0x000001DD50F07A60> Traceback (most recent call last): File “D:…

大数据实训项目(小麦种子)-01、VirtualBox安装与Centos7系统安装

文章目录 前言项目介绍项目任务目标一、VirtualBox安装1.1、认识VirtualBox1.2、VirtualBox的下载安装 二、VirtualBox安装Centos7系统2.1、VirtualBox安装Centos72.2、Centos7配置静态IP地址2.3、Centos7环境基础配置 三、Windows安装FinalShell及连接Centos73.1、FinalShell下…

父亲节马上到了-和我一起用Python写父亲节的祝福吧

前言 让我们一起用Python写一段父亲节的祝福吧 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python 话不多说先上代码 import tkinter as tk from doctest imp…

TS:元组

问: 解释下什么是元组 回答: 元组&#xff08;Tuple&#xff09;是一种数据结构&#xff0c;类似于数组&#xff0c;但与数组不同的是&#xff0c;元组中的元素类型可以各不相同&#xff0c;且元组的长度是固定的。元组在许多编程语言中都有实现&#xff0c;包括 TypeScript…

软设之系统设计之模块设计

模块设计原则概述: 保持模块的大小适中 深度&#xff0c;宽度适中 扇入&#xff0c;扇出系数要合理 模块的作用域应该在模块之内 功能应该是可预测的 高内聚&#xff0c;低耦合 内聚性: 按照从高到低&#xff0c;从强到弱性能排序 功能内聚&#xff0c;顺序内聚&#…

设计模式-享元模式Flyweight(结构型)

享元模式(Flyweight) 享元模式是一种结构型模式&#xff0c;它主要用于减少创建对象的数量&#xff0c;减少内存占用。通过重用现有对象的方式&#xff0c;如果未找到匹配对象则新建对象。线程池、数据库连接池、常量池等池化的思想就是享元模式的一种应用。 图解 角色 享元工…