数据分析小试牛刀-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的主要内容,如果未能解决你的问题,请参考以下文章

ThreadLocal小试牛刀

ThreadLocal小试牛刀

大数据选择题牛刀小练1

Android Room牛刀小试

Android Room牛刀小试

sqlmap的小试牛刀