数据挖掘实战案例——客户细分
我们首先来看看原始数据
具体代码与原始数据可以在我的GitHub中git clone一下学习
代码与数据github地址
共26663条数据
此次分析是想对根据客户的购买情况对客户进行细分
分析用户的购买消费行为
首先读取csv
import pandas as pd
#import numpy as np
trad_flow = pd.read_csv('./购买情况.csv', encoding='gbk')
trad_flow.head(10)
RFM方法建立模型
计算M反应客户的价值信息
M=trad_flow.groupby(['cumid','type'])[['amount']].sum()
M.head()
M_trans=pd.pivot_table(M,index='cumid',columns='type',values='amount')
M_trans['Special_offer']= M_trans['Special_offer'].fillna(0)
M_trans['returned_goods']= M_trans['returned_goods'].fillna(0)
M_trans["value"]=M_trans['Normal']+M_trans['Special_offer']+M_trans['returned_goods']
M_trans.head()
定义一个从文本转化为时间的函数
from datetime import datetime
import time
def to_time(t):out_t=time.mktime(time.strptime(t, '%d%b%y:%H:%M:%S')) ########此处修改为时间戳方便后面qcut函数分箱return out_t
a="14JUN09:17:58:34"
print(to_time(a))
# In[8]
trad_flow["time_new"]= trad_flow.time.apply(to_time)
trad_flow.head()
# In[7]:
R=trad_flow.groupby(['cumid'])[['time_new']].max()
R.head()
构建模型,筛选目标客户
from sklearn import preprocessing
threshold = pd.qcut(F_trans['interest'], 2, retbins=True)[1][1]
binarizer = preprocessing.Binarizer(threshold=threshold)
interest_q = pd.DataFrame(binarizer.transform(F_trans['interest'].values.reshape(-1, 1)))
interest_q.index=F_trans.index
interest_q.columns=["interest"]
# In[12]
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.index
value_q.columns=["value"]
# In[12]
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.index
time_new_q.columns=["time"]
# In[12]
analysis=pd.concat([interest_q, value_q,time_new_q], axis=1)
# In[12]
#analysis['rank']=analysis.interest_q+analysis.interest_q
analysis = analysis[['interest','value','time']]
analysis.head()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)
print(analysis)
程序运行结果
那么我们就根据这1200个customer id对他们进行了分类
用到了聚类分析
有兴趣可以去GitHub下载源代码调试或者与我交流
数据挖掘实战案例——客户细分相关推荐
- 【Python数据挖掘实战案例】K-Means广告效果聚类分析
作者:杨啊小强 来源:Python数据科学修炼之路 本案例的业务场景: 假如你们公司投放广告的渠道很多,每个渠道的客户性质也可能不同,比如在优酷视频投广告和今日头条投放广告,效果可能会有差异.现在需要 ...
- 数据分析与数据挖掘实战案例本地房价预测(716):
数据分析与数据挖掘实战案例(7/16): 2022 年首届钉钉杯大学生大数据挑战赛练习题目 练习题 A:二手房房价分析与预测 要点: 1.机器学习 2.数据挖掘 3.数据清洗.分析.pyeahcrs可 ...
- python预测糖尿病_Python数据挖掘 | 实战案例之预测糖尿病
今天给大家讲解一个实战案例:如何根据现有数据预测糖尿病.在这个案例开始之前,希望大家回忆一下大学里讲过的线性回归的知识,这是数据挖掘里非常重要的一部分知识.当然,鉴于大家都学过,本篇就不再赘述. 一. ...
- 数据挖掘实战项目-客户流失及客户行为偏好分析
app客户流失及客户行为偏好分析(仅供参考) 20**年*月 - 20**年*月 分类信息app,通过数据挖掘分析影响用户流失的关键因素.深入了解用户行为偏好以此做出调整,提升客户留存率,增强客户黏性 ...
- 完整的数据分析项目长什么样子?XX移动客户细分模型项目报告借你参考
初学数据分析和挖掘的同学常常不知道学会了方法和工具之后怎么用,实际项目是怎么做的,在这里介绍一个完整项目过程,大家可以参考学习.重点在于使用CRISP-DM方法论流程.使用机器学习聚类方法以及挖掘结果 ...
- 数据挖掘应用案例:RFM模型分析与客户细分(转)
正好刚帮某电信行业完成一个数据挖掘工作,其中的RFM模型还是有一定代表性,就再把数据挖掘RFM模型的建模思路细节与大家分享一下吧!手机充值业务是一项主要电信业务形式,客户的充值行为记录正好满足RFM模 ...
- 【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
目录 一.背景和挖掘目标 1.RFM模型缺点分析 2.原始数据情况 3.挖掘目标 二.分析方法与过程 1.初步分析:提出适用航空公司的LRFMC模型 2.总体流程 第一步:数据抽取 第二步:探索性分析 ...
- NC65 添加客户档案 实战案例
NC65 添加客户档案 实战案例 本篇博客是为了方便使用 用友NC65 在开发时解决一些常见问题而编写的: 操作步骤 1.在业务组件中创建元数据 ①.创建实体, 并且关联使用到的业务接口 ②.元数据设 ...
- 实战案例!基于 K-Means 聚类算法的客户精准营销模型
客群细分对于企业了解目标受众非常重要.根据受众群体的不同,我们可以给采取不同的营销策略.目前有许多无监督的机器学习算法可以帮助公司识别他们的用户群并创建消费群体. 在本文中,我将分享一种目前比较流行的 ...
最新文章
- GLPI生成中文PDF报表
- python免费试听-线上儿童编程免费试听-品质保障
- jQuery的JSONP
- PREV-3_蓝桥杯_带分数
- R语言数据转换(split-apply-combin…
- Linux用一键安装包快速部署禅道项目管理平台
- TIF合并Java代码
- 网站版面布局设计原理
- 基于JavaFx的通讯录
- ROS从入门到精通0-2:ROS简介、安装与常见问题
- Linux 操作系统常用以下哪种编译器,Linux 操作系统期末复习资料(Alpha版)
- 抖音胡闹天宫直播项目,可虚拟人直播 抖音报白 实时互动直播软
- 暴力破解工具 hydra
- Storm Windowing(翻译)
- 你不得不会的EXCEL选择性粘贴
- 【前端优化】超详细!带你体验常用的前端优化手段
- android listview 缓存,探究Android ListView 的缓存机制
- 懂得放弃 (转贴)
- 中国半导体企业百强榜(TOP 100)
- CreateEvent例子