学习笔记:【案例】航空公司客户价值分析

案例来源:《Python数据分析与挖掘实战》第7章

案例背景与挖掘目标

输入数据:
航空信息数据表(客户基本信息 + 乘机信息 + 积分信息)

挖掘目标:

  1. 借助航空公司客户数据,对客户进行分类。
  2. 对不同的客户类别进行特征分析,比较不同类客户的客户价值。
  3. 对不同价值的客户类别提供个性化服务,制定相应的营销策略。

分析方法与过程(选择的原则)

调用CRM中的客户价值模型
RFM模型的3个指标:
最近消费时间间隔(Recency)
消费频率(Frequency)
消费金额(Monetary)

因应需求增加的指标:
客户关系长度(Long-Term)
飞行里程(Miles)
折扣系数的平均值(avg-disCount)

由于消费金额相同的情况下,选择短途+头等的客户,比选择长途+经济的客户价值要高,因此以 飞行里程 + 折扣系数平均值代替消费金额,作为判断客户价值的指标。

子任务规划

  1. 选择性抽取数据,新增数据抽取分别形成历史数据和增量数据
  2. 数据探索分析,数据预处理(分析缺失值与异常值,属性规约,清洗和变换)
  3. 客户价值分析(重要保持,重要发展,重要挽留,一般与低价值)
  4. 针对不同价值客户,采用不同的营销手段,提供定制化的服务

实验一
对L, R, F, M, C 五个指标进行z-score(标准差)标准化
实验二
应用K-Means算法对样本数据进行聚类分析

# 用read_excel() 读入数据 /data/zscoredata.xls
# 用mean() std(),获得LRFMC五个指标的平均值和标准差
# 使用z-score进行标准差标准化

import pandas as pd
from sklearn.cluster import KMeans

dpath = './demo/data/zscoredata.xls'
input_data = pd.read_excel(dpath)

input_data.describe()

#                  L             R             F              M             C
#count  62044.000000  62044.000000  62044.000000   62044.000000  62044.000000
#mean      49.673808      5.751064     11.971359   17321.694749      0.722319
#std       28.260073      6.050889     14.110619   21052.728111      0.184820
#min       12.230000      0.030000      2.000000     368.000000      0.140000
#25%       24.570000      0.970000      3.000000    4874.000000      0.610000
#50%       42.630000      3.500000      7.000000   10200.000000      0.710000
#75%       72.800000      8.670000     15.000000   21522.500000      0.810000
#max      114.630000     24.370000    213.000000  580717.000000      1.500000

input_data.mean()
#L       49.673808
#R        5.751064
#F       11.971359
#M    17321.694749
#C        0.722319
#dtype: float64

input_data.std()
#L       28.260073
#R        6.050889
#F       14.110619
#M    21052.728111
#C        0.184820
#dtype: float64

data = (input_data - input_data.mean(axis = 0)) / input_data.std(axis = 0)

# 截取最后五列作为KMeans的输入
# 调用KMeans,得到聚类标号和中心点
# 根据标号统计类别客户数,根据聚类中心点向量画出客户聚类中心向量图

ppdpath = './test/data/preprocesseddata.xls'
ppddata = pd.read_excel(ppdpath)

kinput = ppddata[ppddata.columns[-5:]]

k = 5

kmodel = KMeans(n_clusters= k, n_jobs= 4)
kmodel.fit(kinput)

kmodel.cluster_centers_  #聚类中心点
kmodel.labels_           #聚类标号

import numpy as np

unique, counts = np.unique(kmodel.labels_, return_counts=True) #统计类别会员数
GrpCounts = dict(zip(unique, counts))

print(GrpCounts)

import matplotlib.pyplot as plt

labels = kinput.columns
plot_data = kmodel.cluster_centers_
color = ['b','g','r','c','y']

angles = np.linspace(0,2*np.pi, k, endpoint=False)
plot_data = np.concatenate((plot_data, plot_data[:,[0]]), axis=1)
angles = np.concatenate((angles, [angles[0]]))

fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
for i in range(len(plot_data)):
    ax.plot(angles, plot_data[i], 'o-', color=color[i], label = u'Customers'+str(i), linewidth = 2)

ax.set_rgrids(np.arange(0.01, 3.5, 0.5), np.arange(-1, 2.5, 0.5), fontproperties = "SimHei")
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties = "SimHei")
plt.legend(loc = 4)
plt.show()

转载于:https://www.cnblogs.com/jc53/p/9438612.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在激烈的市场竞争中,航空公司为争取更多的客源而开展的一个优质服务项目是预订票业务。公司承诺,预先订购机票的乘客如果未能按时前来登机,可以乘坐下一班机或退票,无需附加任何费用。 设飞机容量为,若公司限制只预订张机票,那么由于总会有一些订了机票的乘客不按时前来登机,致使飞机因不满员飞行而利润降低,甚至亏本。如果不限制订票数量,则当持票按时前来登机的乘客超过飞机容量时,将会有乘客不能乘坐他们预订的航班,航空公司需要采取各种不同方法来应对这些乘客。有的不给予任何补偿,有的被改签后面的航班,有的给予一定赔偿金。这样,为极大化公司的经济利益,必然存在一个恰当的预订票数量的限额。 假设已经知道飞行费用(可设与乘客人数无关)、机票价格(一般飞机满员50%_60%时不亏本,由飞行费用可确定价格)、飞机容量、每位被挤掉者的赔偿金等数据,以及由统计资料估计的每位乘客不按时前来登机的概率(不妨认为乘客间是相互独立的),建立一个数学模型,综合考虑公司经济利益(飞行费用、赔偿金与机票收入等),确定最佳的预订票数量。 1)对上述飞机容量、费用、迟到概率等参数给出一些具体数据,按你的模型计算,对结果进行分析。 2)对模型进行改进,如增设某类旅客(学生、旅游者)的减价票,迟到则机票作废。 提示:按时到达机场乘坐某航班的乘客数是一个随机变量,因此利润也是随机变量,需要给出利润的数学模型。
好的,我会尽力回答你的问题。关于通过UDP传输音视频,我了解一些相关的知识,下面是一些学习笔记: 1. gstreamer是一个流媒体框架,用于创建、处理和播放多媒体流。它支持多种音视频格式,可以通过插件扩展功能。 2. 通过gstreamer可以使用UDP协议传输音视频数据。UDP协议是一种无连接的协议,不保证数据传输的可靠性和顺序性,但是传输效率高。 3. 首先需要创建一个gstreamer的pipeline,包括音视频源、编码器、UDP发送端等组件。例如: ``` gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5000 ``` 这个pipeline的作用是从test.mp4文件读取音视频流,解码后使用x264编码器进行压缩,然后使用rtph264pay将数据打包成RTP数据包,最后通过udpsink发送到指定的IP地址和端口。 4. 接收端需要创建一个gstreamer的pipeline,包括UDP接收端、解包器、解码器等组件。例如: ``` gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink ``` 这个pipeline的作用是从UDP端口5000接收音视频数据,使用rtpjitterbuffer解决网络抖动问题,使用rtph264depay将RTP数据包解包成原始的H.264数据流,然后使用avdec_h264解码器进行解码,最后使用autovideosink播放视频。 5. 在实际使用过程中,还需要考虑数据的带宽限制、网络延迟等问题,以保证音视频传输的效果。 希望这些笔记能对你有帮助。如果你还有其他问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值