数据分析小试牛刀-1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析小试牛刀-1相关的知识,希望对你有一定的参考价值。
参考技术A 一.背景介绍一家在英国注册的非商店在线零售店主要销售独特的礼品,其中许多客户是批发商。下文针对该店2010年12月1日至2011年12月9日期间发生的所有交易数据进行多角度的分析,以提高该店销售量,降低退货率。
二.提出问题及分析思路
客户总数量,每月客户数量?
分析不同客户的价值,进行精准化营销?
商品的种类,热销商品以及退货订单数高的商品种类?
客户所属国家,不同国家的订单数,退货订单数以及销售金额? 具体分析思路如下:
三.理解,清洗数据
1.理解数据
本数据集来源于开源数据集网站kaggle: https://www.kaggle.com/carrie1/ecommerce-data
数据有542K行X 8列,8个字段如下:
2.数据清洗
2.1缺失值处理
a.在记录中找到1454条描述详情为空,单价为0,无客户编码的记录,这些数据对我们作用不大,将其删除。
b.存在133k条数据客户号码缺失,因数据量大,暂不明确它是否有作用,先保留后再看看能否使用。
2.2 发票日期和时间处理
发现日期和时间之间存在空格,利用分列工具将它进行数据处理。补全字段名字“Time”
四.构建模型
1.2010年12月1日至2011年12月9日期间总客户数量,及每月客户数。
通过上面的统计可知:
a.店铺这段时间的总顾客有4372,平均每个月有1082位客户。(其中2011年12月数据只有前9天数据,故不计入),很多客户存在重复购买行为。
b. 2011年1月至8月,客户数量有着小幅度的波动,在9月之后持续增长。
2.通过建立RFM模型寻找价值客户
利用RFM模型分析客户近期的购买行为,频率及消费金额三项指标来描述客户的价值和创利能力(Recency:距离最近一次购买的时间,Frequency:购买次数,Monetary:购买总金额)
将上述SQL得出的数据导出为xlsx格式到excel中进行处理。
首先将时间设定为2011/12/10,然后统一得出距离2011/12/10最后一次购买的时间。
设置R,F,M参数并打分
备注:R参数打分原则为距离最近一次购买时间大于0天,小于15天的打5分,依次类推;F参数打分原则为购买次数大于0次,小于2次,得1分;依次类推。M参数打分原则为订单金额大于-5000,小于250,得1分;依次类推。
通过参数分数的设置,利用lookup函数给用户打分:
打分结果统计如下:
可以看出分布比较均匀,说明参数设置合理。
然后计算出用户RFM的平均值,将每个用户的R/F/M分数与平均值比较,如果大于平均值则为1,小于平均值为0.
然后连接RFM值,这样得到了所有用户的RFM值,对客户进行分类如下图:
当RF=111时,表示客户最近有购买行为,购买次数多,交易金额高;
这类客户是重要价值客户,需要保持。
当RF=110时,表示客户最近有购买行为,购买次数多,交易金额较低;
这类客户是潜力客户,需要挖掘跟进。
当RF=001时,表示客户最近没有购买行为,购买次数少,交易金额高;
这类客户是是潜在的有价值客户,需要挽留。
当RF=000时,表示客户最近没有购买行为,购买次数少,交易金额低;
表示这类客户已流失。
当RF=101时,表示客户最近有购买行为,购买次数少,交易金额高;
这类客户是重要深耕客户,需要重点识别。
当RF=100时,表示客户最近有购买行为,购买次数少,交易金额低;
这类客户是新客户,具有推广价值。
当RF=011时,表示客户最近没有购买行为,购买次数多,交易金额高;
这类客户是重要唤回客户,需要唤回。
当RF=010时,表示客户最近没有购买行为,购买次数多,交易金额低;
这类客户是一般维持客户,交易次数多,但贡献不大。
通过统计可以看出,店铺的重要唤回客户较多,其次是流失客户,新客户。这说明了店铺在留存方面的不足。
3. 统计商品种类,不同商品的成功订单数,退货订单数以及销售金额
将以上的统计结果导出,整理得到
3.1 商品种类有3828种。其中有39类商品订单数在1000及以上,热销的商品有白色t型灯座,3层蛋糕架,聚会彩旗,爆米花托,蛋糕盒,各类包,储物袋,午餐袋,果酱罐,明信片,小装饰品,茶杯茶碟,灯具,餐巾纸等等。
3.2 退货订单数top10的商品(除去邮费,样品,折扣等特殊记录)有3层蛋糕架,果酱罐,蛋糕食品柜,草莓陶瓷小饰品盒,茶杯茶碟,爆米花托,食谱盒,木制抽屉柜,红色大袋子,红色特大型午餐袋。
3.3 销售金额top10的商品(除去邮费外)有3层蛋糕架, 白色t型灯座,聚会彩旗,红色特大型袋子,兔子夜灯,纸质链盒,杂色鸟装饰品,辣椒灯,野餐篮,爆米花托。
4. 统计客户所属国家,每个国家的订单数以及订单总金额(交易成功金额,交易失败金额)。
将SQL的数据导出,整理得到
4.1 订单数top10的国家
4.2 成功订单数top10的国家
4.3 退货订单数top10的国家
4.4 订单总金额top10的国家
根据SQL统计结果可知:
a.客户来源于37个国家(除去未知信息),大部分属于欧洲国家;其中英国本地的客户订单数最多,占比90%以上。
b. 订单总金额top10的国家为英国,荷兰,爱尔兰,德国,法国,澳大利亚,瑞士,西班牙,比利时,瑞典。其中英国的订单总金额是最多的,占比84% 。澳大利作为其中唯一的太平洋国家,占有1.4%的订单总金额。
五.结论及建议
1.店铺在9月份之后客户数量持续增长,建议在8月底加大商品的上新。
2.店铺的流失客户,重要唤回客户较多,说明店铺的留存做的不足。建议针对重要唤回客户进行精准化营销活动,以促进这类客户的回流。
3.热销商品种类例如有3层蛋糕架, 白色t型灯座,聚会彩旗,红色特大型袋子,兔子夜灯,纸质链盒,杂色鸟装饰品,辣椒灯,野餐篮,爆米花托等可以进行重点推销或者进行组合销售。
4.针对退货订单数的商品可以看出有部分商品种类与热销商品重合,因此店铺要加大对商品品质的保障。
5.加大欧洲其他国家如荷兰,爱尔兰,德国,法国,瑞士,西班牙,比利时,瑞典;澳大利亚的市场推广。
perf性能瓶颈分析小试牛刀
文档
https://perf.wiki.kernel.org/index.php/Tutorial#Live_analysis_with_perf_top
内核配置
CONFIG_PERF_EVENTS=y
编译
make -C tools/perf
Auto-detecting system features:
... dwarf: [ OFF ]
... dwarf_getlocations: [ OFF ]
... glibc: [ on ]
... gtk2: [ OFF ]
... libaudit: [ OFF ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ OFF ]
... numa_num_possible_cpus: [ OFF ]
... libperl: [ OFF ]
... libpython: [ OFF ]
... libslang: [ OFF ]
... libcrypto: [ OFF ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ OFF ]
... zlib: [ on ]
... lzma: [ OFF ]
... get_cpuid: [ OFF ]
... bpf: [ on ]
文件系统一定要添加libunwind,否则 perf 无法找到函数名,只能显示一些符号地址。
应用实例
lvgl 应用界面卡顿,简单的用 perf top 分析哪些函数消耗cpu资源较大,进一步优化应用程序
perf top
PerfTop: 630 irqs/sec kernel:90.8% exact: 0.0% [4000Hz cycles:ppp], (all, 4 CPUs)
-------------------------------------------------------------------------------
19.15% lvgl_launcher [.] lodepng_inflatev.isra.11
12.19% libc-2.23.so [.] memcpy
7.77% lvgl_launcher [.] fbdev_flush
6.41% [kernel] [k] cpuidle_enter_state
3.74% [kernel] [k] _raw_spin_unlock_irqrestore
3.73% lvgl_launcher [.] _lv_blend_map
3.49% lvgl_launcher [.] lodepng_zlib_decompress
3.46% lvgl_launcher [.] decodeGeneric
3.45% lvgl_launcher [.] unfilter
3.38% [kernel] [k] __slab_alloc.isra.19.constprop.23
2.77% lvgl_launcher [.] _lv_blend_fill
2.54% lvgl_launcher [.] lv_refr_vdb_flush
2.37% [kernel] [k] _raw_spin_unlock_irq
1.86% lvgl_launcher [.] lv_draw_label
1.85% lvgl_launcher [.] lv_draw_map
1.35% lvgl_launcher [.] decoder_open
1.28% lvgl_launcher [.] fread@plt
1.08% lvgl_launcher [.] lv_color_fill
1.00% [kernel] [k] __softirqentry_text_start
0.92% [kernel] [k] tick_nohz_idle_enter
perf top -p PID 单独分析lvgl_launcher进程
PerfTop: 3972 irqs/sec kernel: 3.8% exact: 0.0% [4000Hz cycles:ppp], (target_pid: 2766)
-------------------------------------------------------------------------------
33.50% lvgl_launcher [.] lodepng_inflatev.isra.11
12.89% libc-2.23.so [.] memcpy
6.92% lvgl_launcher [.] fbdev_flush
6.59% lvgl_launcher [.] _lv_blend_map
6.12% lvgl_launcher [.] lodepng_zlib_decompress
6.12% lvgl_launcher [.] unfilter
6.05% lvgl_launcher [.] decodeGeneric
3.15% lvgl_launcher [.] lv_draw_map
2.81% lvgl_launcher [.] _lv_blend_fill
2.33% lvgl_launcher [.] lv_refr_vdb_flush
2.32% lvgl_launcher [.] decoder_open
1.90% lvgl_launcher [.] lv_draw_label
1.30% lvgl_launcher [.] fread@plt
1.27% lvgl_launcher [.] lv_color_fill
0.68% lvgl_launcher [.] HuffmanTree_makeFromLengths2
0.68% [kernel] [k] __slab_alloc.isra.19.constprop.23
0.42% [kernel] [k] _raw_spin_unlock_irqrestore
0.28% [kernel] [k] __arch_copy_to_user
0.28% [kernel] [k] __softirqentry_text_start
0.19% [kernel] [k] clear_page
perf top -g -p PID 打印调用栈
99.92% 0.00% lvgl_launcher [.] _start
|
---_start
__libc_start_main
|
--99.91%--main
|
--99.82%--lv_task_handler
|
--99.64%--_lv_disp_refr_task
|
--99.62%--lv_refr_area_part
|
|--71.73%--lv_refr_obj_and_children
| lv_refr_obj.part.3
| |
| |--70.50%--lv_refr_obj.part.3
| | |
| | |--58.45%--lv_refr_obj.part.3
| | | |
| | | |--40.61%--lv_img_design
| | | | |
| | | | --40.53%--lv_draw_img
| | | | |
| | | | |--36.02%--_lv_img_cache_open
| | | | | |
| | | | | --35.86%--lv_img_decoder_open
| | | | | |
| | | | | --35.56%--decoder_open
| | | | | |
| | | | | --33.89%--lodepng_decode_memory
| | | | | |
| | | | | --33.75%--decodeGeneric
| | | | | |
| | | | | |--27.36%--lodepng_zlib_decompress
| | | | | | |
| | | | | | |--22.28%--lodepng_inflatev.isra.11
| | | | | | |
| | | | | | --1.85%--memcpy
| | | | | |
| | | | | --3.19%--postProcessScanlines
| | | | | unfilter
| | | | |
| | | | --4.49%--lv_draw_map
| | | | |
| | | | --2.75%--_lv_blend_map
以上是关于数据分析小试牛刀-1的主要内容,如果未能解决你的问题,请参考以下文章