首页 > 编程知识 正文

用户画像是什么,如何对客户进行精准画像

时间:2023-05-04 18:41:17 阅读:174405 作者:1430

什么是精准营销?

精准营销依托现代信息技术手段,基于精准定位构建个性化的客户沟通服务体系,最终实现可衡量、低成本的可拓路径。 与一般的网络营销相比,精准营销更注重精准、可测和高投资回报。

正确的营销的优点是什么?

1、可以量化。 传统营销定位有限,依靠现代信息技术可以准确定位市场,量化营销结果,比一般网络营销更有效;

2、可测、可控。 传统的广告沟通成本很高,企业不可能以低成本实现快速发展。 精准营销利用数据库技术、网络通信技术以及现代高度分布式物流等手段,保障与客户的长期个性化沟通,使结果可测、可控,成本更低; 等等。

简而言之,就是通过数据分析来标记客户,并针对不同类型的客户进行不同有效的营销。

请通过简单的情况知道! 现在我们拿到了某购物网站的顾客消费记录表。

案例说明:现在我们要做关于打折商品的营销活动。 如果你是营销人员,你想知道客户的信息(标签)吗?

根据结果反算,你一定想知道顾客是否对打折商品感兴趣。 已经有标签了。 我们将继续了解客户的价值高低(第二个标签)、价值程度。 另外,我还想知道这个客户是否活跃(第三个标签)和活跃程度(第三个标签)。

那么,我们现在有了这三个标签,就可以用这三个标签制定不同的营销方案。 那么,我们来研究一下如何通过分析数据,给每个顾客打上这三个标签

分析工具: python---anaconda3--- jupyternotebook

要使用的库: pandan、numpy、sklearn.preprocessing、datetime

1 .数据文件importpandasaspdimportnumpyasnpimportosos.chdir (r ' c : (users (code (case1) python ' ) trad_flow=pplow

f=trad_flow.groupby(['cumid”,“type']”).count ) ) F.head )按cumid统一横向F_trans=pd.pivot_table(F ()

2.1 )缺失值处理

#缺少值处理f _ trans [ ' special _ offer ' ]=f _ trans [ ' special _ offer ' ].fill na (0) F_trans.head )3.标签的

#通过计算客户购买的特价商品数量相对于总商品数量的比率,客户对折扣商品感兴趣的程度---特价/(特价正常)--礼物不花钱,所以不考虑。 f _ trans [ ' interest ' ]=f _ trans [ ' special _ offer ' ]/f _ trans [ ' special _ offer ' ] f _ trans [ ' normans ]

3.2 .客户价值计算

#m反应通过计算客户的价值信息m=trad_flow.groupby(['cumid ',' type'] ) ['amount'] ).sum ) (M.head ),计算所有类型商品的购买金额values='amount ' ) m _ trans [ ' special _ offer ' ]=m _ trans [ ' special _ offer ' ].fill na (0) m _ trans [ '。

3.3 )计算客户是沉默的还是活动的(将日期和时间转换为时间戳) )。

定义从# # In[8]文本转换为时间的函数。 #time.strptime将时间字符串转换为struct_time时间对象,time.mktime将struct_time对象实例转换为时间戳。 (时间戳是指格林威治时间1970年01月01日00时00分000分(秒数越小,表示上次购买时间越长---沉默。 反之亦然,fromdatetimeimportdatetimeimporttimedefto _ time (t ) :out_t=time.mktime ) time.strptime,“% d % b”

##此处修改为时间戳方便后面qcut函数分箱 return out_t# a="14(日)JUN(月份的简称)09(年):17(时):58(分):34(秒)"# print(to_time(a))#将转换时间日期的函数应用到trad_flow结构里的time列(把一整列都转换为时间戳,并生成行的标签time_new)trad_flow["time_new"]= trad_flow.time.apply(to_time)trad_flow.head()#以cumid、time_new列进行分组,找出比较大的(活跃)R=trad_flow.groupby(['cumid'])[['time_new']].max()R.head()

时间戳--从北京时间1970年01月01日08时00分00秒至今(已秒计)

 

4.特征工程--特征二值化(将所求得的三个标签的值转换为0,1)

对兴趣度进行特征二值化

from sklearn import preprocessingfrom pandas import DataFrame,Seriesimport pandas as pd#特征工程--特征二值化(0,1),把以上求得的标签(是否感兴趣,是否活跃,是否有价值)进行一一二值化#等深分箱threshold = pd.qcut(F_trans["interest"], 2, retbins=True)[1][1]#取出一个值,用做比较binarizer = preprocessing.Binarizer(threshold=threshold)# F_trans['interest'].values.reshape(-1, 1),把值转化为一列二维的数组,进过比较返回0,1interest_q =pd.DataFrame(binarizer.transform( F_trans['interest'].values.reshape(-1, 1)))#添加行索引,列索引interest_q.index=F_trans.indexinterest_q.columns=["interest"]interest_q

4.1对客户价值(valve)进行特征二值化

from sklearn import preprocessing#对特征值(valve客户价值)进行特征二值化threshold = pd.qcut(M_trans["value"],2, retbins=True)[1][1]binarizer = preprocessing.Binarizer(threshold=threshold)value_q = pd.DataFrame(binarizer.transform(M_trans["value"].values.reshape(-1, 1)))value_q.index=M_trans.indexvalue_q.columns=["value"]value_q

4.2对客户是否沉默(time)进行特征二值化

#对特征值(time客户是否沉默)进行特征二值化threshold = pd.qcut(R["time_new"], 2, retbins=True)[1][1]binarizer = preprocessing.Binarizer(threshold=threshold)time_new_q = pd.DataFrame(binarizer.transform(R["time_new"].values.reshape(-1, 1)))time_new_q.index=R.indextime_new_q.columns=["time"]time_new_q 5.合并特征值 #合并三各特征值analysis=pd.concat([interest_q, value_q,time_new_q], axis=1)# In[12]#analysis['rank']=analysis.interest_q+analysis.interest_qanalysis = analysis[['interest','value','time']]analysis.head()

10001-----1.0--1.0--1.0  (有兴趣-高价值-活跃)

转化营销人员看的懂的形式,并保存。。。

label = { (0,0,0):'无兴趣-低价值-沉默', (1,0,0):'有兴趣-低价值-沉默', (1,0,1):'有兴趣-低价值-活跃', (0,0,1):'无兴趣-低价值-活跃', (0,1,0):'无兴趣-高价值-沉默', (1,1,0):'有兴趣-高价值-沉默', (1,1,1):'有兴趣-高价值-活跃', (0,1,1):'无兴趣-高价值-活跃'}analysis['label'] = analysis[['interest','value','time']].apply(lambda x: label[(x[0],x[1],x[2])], axis = 1)analysis.head()# DataFrame.to_csv()

 

一个简单的小案例,通过数据对客户进行画像然后针对不同标签的客户进行不同的有效的营销。是否感受到了数据科学的魅力-……-。

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。