广电大数据用户画像
用户画像是什么?
用户画像是指根据用户属性、用户偏好、生活习惯、用户行为等信息抽像出来的标签化用户模型。就是给用户打标签,而标签通过对用户信息分析而来的高度精炼的特征标识。
通过打标签可以利用一些高度概括、容易理解的特征来描述用户,可以让人更容易理解用户,并且可以方便计算机处理。
用户画像的作用 ?
在互联网、电商领域用户画像常用来作为精准营销、推荐系统的基础性工作,其作用总体包括:
(1)精准营销:根据历史用户特征,分析产品的潜在用户和用户的潜在需求,针对特定群体,利用短信、邮件等方式进行营销。
(2)用户统计:根据用户的属性、行为特征对用户进行分类后,统计不同特征下的用户数量、分布;分析不同用户画像群体的分布特征。
(3)数据挖掘:以用户画像为基础构建推荐系统、搜索引擎、广告投放系统,提升服务精准度。
(4)服务产品:对产品进行用户画像,对产品进行受众分析,更透彻地理解用户使用产品的心理动机和行为习惯,完善产品运营,提升服务质量。
(5)行业报告&用户研究:通过用户画像分析可以了解行业动态,比如人群消费习惯、消费偏好分析、不同地域品类消费差异分析
项目背景与挖掘目标
随着互联网技术的快速发展和应用扩展,国家正式推进三网融合政策,三网融合是指电信网、广播电视网、互联网在向宽带通信网、数字电视网、下一代互联网演进过程中,三大网络通过技术改造,其技术功能趋于一致,业务范围趋于相同,网络互联互通、资源共享,能为用户提供语音、数据和广播电视等多种服务。 新媒体业务的飞速发展对传统媒体造成了巨大冲击,广电行业依靠资源稀缺形成的垄断优势已经失去。
项目目标:
1. 挖掘分析用户相关数据,对用户数据进行标签化,建立一个用户画像模型,可提供标签的增加和删除。
2. 利用SVM算法建立分类模型,预测用户是否值得挽留,并将预测结果作为用户画像的一个标签。
3. 提出的系统架构能适应用户数据大量增长时不需要调整系统架构的情况,即支持动态横向扩展。
数据存储-数据说明
用户信息数据:mediamatch_usermsg
字段 描述
terminal_no 客户地址编号
phone_no 客户编号
sm_name 品牌名称
run_name 状态名称
sm_code 品牌编号
owner_name 客户等级名称
owner_code 客户等级
run_time 状态变更时间
addressoj 完整地址
estate_name 街道或小区地址
force 宽带是否生效
open_time 开户时间
用户状态变更信息数据:mediamatch_userevent
字段 描述
run_name 状态名称
run_time 更改状态时间
owner_code 客户等级编号
owner_name 客户等级名称
sm_name 品牌名称
open_time 开户时间
phone_no 客户编号
账单信息数据:mmconsume_billevents
字段 描述
fee_code 费用类型
phone_no 客户编号
owner_code 客户等级
owner_name 客户等级编号
sm_name 品牌名
year_month 账单时间
terminal_no 用户地址编号
favour_fee 优惠金额(+代表优惠,-代表额外费用)
should_pay 应收金额,单位:元
用户收视行为数据:media_index
字段名 描述
terminal no 用户地址编号
phone no 用户编号
duration 观看时长,单位:毫秒
station name 直播频道名称
origin_time 观看行为开始时间
end_time 观看行为结束时间
owner_code 客户等级
owner_name 客户等级名称
vod_cat_tags vod节目包相关信息(nested object)按不同的节目包目录组织
resolution 点播节目的清晰度
audio Jlang 点播节目的语言类别
region 节目地区信息
res_name 设备名称
res_type 媒体节目类型0是直播,1是点播或回看
vod_titlevod 节目名称
category_name 节目所属分类
program_title 直播节目名称
sm_name 用户品牌名称
订单信息数据 media_index
字段 描述
phone_no 用户编号
owner_name 客户等级名称
optdate 产品订购状态更新时间
Prodname 订购产品名称
sm_name 用户品牌名称
offerid 订购套餐编号
offername 订购套餐名称
business_name 订购业务状态
owner_code 客户等级
prodprcid 订购产品名称(带价格)的编号
prodprcname 订购产品名称(带价格)
effdate 产品生效时间
expdate 产品失效时间
orderdate 产品订购时间
cost 订购产品价格
mode_time 产品标识,辅助标识电视主、附销售品
prodstatus 订购产品状态
run_name 状态名
orderno 订单编号
实训步骤-数据存储操作
接下来我们使用xftp将数据上传到opt目录下 依次将上传的五个文件删除第一行数据,因为第一行数据为表结构
sed -i 1d mediamatch_usermsg.csv
sed -i 1d media_index.csv
sed -i 1d mediamatch_userevent.csv
sed -i 1d mmconsume_billevents.csv
sed -i 1d order_index.csv
然后我们打开虚拟机启动Hadoop服务、Zookeeper服务
启动hive:
hive --service metastore &
进入hive:
hive
创建一个数据库zjsm:
create database zjsm;
我们需要创建五个表:
mediamatch_usermsg 用户信息表
mediamatch_userevent 状态变更表
mmconsume_billevents 账单表
order_index 订单表
media_index 收视表
在Hive中执行以下命令创建表并且导入数据到Hive中
1.账单表
创建mmconsume_billevents表
create table mmconsume_billevents( terminal_no string, phone_no string, fee_code string, year_month string, owner_name string, owner_code string, sm_name string, should_pay double, favour_fee double) row format delimited fields terminated by '\073';
将数据导入到mmconsume_billevents表中
load data local inpath '/opt/mmconsume_billevents.csv' overwrite into table mmconsume_billevents;
2.收视表
创建media_index表
create table media_index( terminal_no string, phone_no string, duration bigint, station_name string, origin_time string, end_time string, owner_code string, owner_name string, vod_cat_tags string, resolution string, audio_lang string, region string, res_name string, res_type int, vod_title string, category_name string, program_title string, sm_name string) row format delimited fields terminated by '\073';
将数据导入到media_index表中
load data local inpath '/opt/media_index.csv' overwrite into table media_index;
3.用户信息表
创建mediamatch_usermsg表
create table mediamatch_usermsg( terminal_no string, phone_no string, sm_name string, run_name string, sm_code string, owner_name string, owner_code string, run_time string, addressoj string, open_time string, force string) row format delimited fields terminated by '\073';
将数据导入到mediamatch_usermsg表中
load data local inpath '/opt/mediamatch_usermsg.csv' overwrite into table mediamatch_usermsg;
4.订单表
创建order_index表
create table order_index( phone_no string, owner_name string, optdate string, prodname string, sm_name string, offerid int, offername string, business_name string, owner_code string, prodprcid int, prodprcname string, effdate string, expdate string, orderdate string, cost string, mode_time string, prodstatus string, run_name string, orderno string, offertype string) row format delimited fields terminated by '\073';
将数据导入到order_index表中
load data local inpath '/opt/order_index.csv' overwrite into table order_index;
5.状态变更表
创建mediamatch_userevent表
create table mediamatch_userevent( phone_no string, run_name string, run_time string, owner_name string, owner_code string, open_time string, sm_name string) row format delimited fields terminated by '\073';
将数据导入到 mediamatch_userevent表中
load data local inpath '/opt/mediamatch_userevent.csv' overwrite into table mediamatch_userevent;
数据存储工作完成