zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

jupyter notebook安装部署及实战组合漏斗图绘制

2023-03-20 15:33:29 时间

背景:

大多数互联网企业都提供有类似Notebook类的产品,采用交互式的方式进行数据分析、数据建模及数据可视化。主要实现大多都是基于jupyter 、Zeppelin进行定制化开发,重点会打通大数据计算、存储及底层资源管理,支持常见的机器学习和深度学习计算框架,算法分析及建模中最常见的是采用jupyter notebook,能够在浏览器中,通过编写python脚本 运行脚本,在脚本块下方展示运行结果。

jupyter notebook 可以交互式的开发,再加上拥有丰富的的文本格式、可以图文并茂的展示结果,迅速的展现数据分析师的想法。

安装Jupyter Notebook

Anaconda 安装管理Juypter Notebook

Anaconda是一个免费的开发环境,能帮你管理众多的Python库,支持Jupyter Notebook、Spyder等工具,还有许多科学包,通过可以从官网上直接下载安装Anaconda,启动Anaconda后 安装Juypter就比较简单,直接Anaconda界面上启动就好了,默认Anaconda会安装好Juypter和相关科学库。

使用pip命令安装

在命令行中通过python3安装,安装之前建议升级下pip,,解决老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题,这种情况下如果需要其他科学包及其依赖项就需要手动去安装了。

pip3 install --upgrade pip ## 更新
pip3 install jupyter  ## 安装
jupyter notebook --port <port_number>  ## 启动可以指定端口号,不指定默认8888 当
# 还可以指定其他参数具体可以 jupyter notebook -h

使用Docker安装

docker安装启动jupyter就比较简单了

比如:docker run -it -d --name=test. tensorflow/tensorflow:2.2.0-jupyter -p 8888:8082

实践Juypter notebook

在Juypter中使用Plotly 绘图

简介

Plotly 是一个非常强大的开源数据可视化框架,它通过构建基于 HTML 的交互式图表来显示信息,可创建各种形式的精美图表。本文所说的 Plotly 指的是 Plotly.js 的 Python 封装,plotly本身是个生态非常复杂的绘图工具,它对很多编程语言提供接口,交互式和美观易用应该是 Plotly 最大的优势

绘制漏斗图

在一个电商购物场景下,用户购买 商品会涉及到多个流程,从下载APP、注册APP、搜索商品,购买商品,每个流程都会潜在的流失率,通过漏斗图可以用来呈现用户流失情况,我们收集到每个阶段数据后就可以利用Plotly进行漏斗图的绘制了。

绘制流程

  • 安装Plotly包
pip install plotly
  • 详细代码

这里绘制个稍微复杂的代码,分别绘制男女生适用产品的组合型漏斗

import plotly.express as px # 导入需要的模块,命名为px
import pandas as pd

stages = ["访问数", "下载数", "注册数", "搜索数", "付款数"]
#漏斗的数据
data = pd.DataFrame(dict( #准备漏斗数据
    number=[59, 32, 18, 9, 2],
    stage=stages))
data['性别']='男'
print(data)

data2 = pd.DataFrame(dict( #准备漏斗数据
    number=[40, 30, 22, 10, 5],
    stage=stages))

data2['性别']='女'

df = pd.concat([data,data2],axis=0) # 拼接漏斗数据,pandas函数拼接支持DataFrame类型
print(df)
fig = px.funnel(df,x='number',y='stage',color='性别') #把数据传入漏斗
fig.show()  # 显示漏斗数据
  • 结果显示
  • 结果分析

通过这个漏洞图发现通过整个APP购买流程,发现每个阶段都有用户流程,还有就是女性用户购买的比例明显大点,这些现象可以启发产品运营同学可以聚焦某个环节 去减少某个流程中的流失率

参考文档

https://cloud.tencent.com/developer/article/1816485?from=article.detail.1849021