快速分析变量间关系(Boruta+SHAP+RCS)的 APP(streamlit)

快速分析变量间关系(Boruta+SHAP+RCS)的 APP(streamlit)

以下情况下,你需要这个快速分析的APP:

  1. 正式分析之前的预分析,有助于确定分析的方向和重点变量;
  2. 收集变量过程中,监测收集的变量是否合适。偶尔会遇到数据集中没有特征变量和结局变量相关,这如果发生在数据收集结束的阶段,将是灾难性的,所以我们需要不断的监测数据的收集。

下面介绍一个自动化程度较高的,有一定的准确度,且快速的数据探索APP。之前介绍过R语言版本,但是因为算力要求较多,没有部署到网络,所以撰写了目前的streamlit版本。
第一步,变量筛选模块,采用了Boruta算法的改进版leshy算法(arfs包),其中的参数‘important=‘naive’’,还可以选择‘shap’(因为运算慢,舍弃了),给大家推荐这个包。这个模块有回归和二分类两个模型,还各自内置了一个数据集,进行展示。
在这里插入图片描述
第二步,SHAP分析,这里主要展示全局解释的结果,包括汇总图和单变量的散点图,而局部解释的结果,如瀑布图,不符合这个APP的目的,暂时没有涉及。交互作用的部分(待添加)。
在这里插入图片描述
第三步,限制性立方样条曲线拟合,对某特征变量SHAP值变化的趋势进行拟合并确定关键的点对应的特征值,比如二分类模型,SHAP值为0时对应的特征值是两种结局概率相等的点,低于或者高于这个点的值都意味着倾向于发生某种结局。还设计了可以调整的曲线拟合参数的n_knots和degree,以及两条纵向的虚线来指示特定的点。
在这里插入图片描述

APP地址

https://focus-analysis.streamlit.app/

代码地址

https://github.com/liuyp2080/fast_analysis

心得体会

Web APP, 代码复杂程度较低,特别适合数据分析为主,编程代码为辅的人群,包括作为临床预测模型构建好之后进入临床应用的媒介。R语言的shinyAPP的瓶颈在于部署,需要算力较多的就需要花钱进行部署,在这一点上,streamlit可能是因为结合GPU,所以是更好的选择,所以深度学习模型,首选的是也是streamlit(机器学习和统计分析,可以尝试shinyAPP)。建立了一个web APP讨论的群组,欢迎大家加入,同时接受APP制作的委托,欢迎大家咨询!
在这里插入图片描述

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Streamlit是一个开源的Python库,用于快速创建web应用。它提供了简单的API,允许用户通过简单的代码片段构建复杂的应用。在Streamlit中,可以使用`streamlit.sidebar`来展示一个侧边栏(sidebar),允许用户输入数据或者选择选项。 要在Streamlit中调用不同的streamlit文件并展示其页面,您需要将它们组织成一个单独的Streamlit应用,然后在您的主应用中使用`streamlit.sidebar`来调用它们。 以下是一个简单的步骤说明: 1. 创建您的主Streamlit应用:首先,创建一个新的Streamlit应用,并在其中编写您的主代码。这可能包括一些初始化的代码,以及一个主页面或主应用的结构。 2. 创建子Streamlit文件:接下来,创建您希望在主应用中调用的子Streamlit文件。每个子文件都应该是一个独立的Streamlit应用,具有自己的页面和功能。 3. 组织您的应用:将子Streamlit文件组织成文件夹,并在主Streamlit应用中引用它们。您可以使用相对路径或绝对路径来引用子Streamlit文件。 4. 在主应用中使用`streamlit.sidebar`:在主Streamlit应用中,使用`streamlit.sidebar`函数来调用子Streamlit文件中的页面。您可以使用子Streamlit文件的名称或路径作为参数传递给`streamlit.sidebar`函数。 下面是一个简单的示例代码,展示了如何使用`streamlit.sidebar`来调用不同的Streamlit文件并展示其页面: 主Streamlit应用代码: ```python import streamlit as st import os # 导入子Streamlit文件 child_file = os.path.join(os.getcwd(), 'child_app', 'child_file.py') exec(open(child_file).read()) # 在主页面上展示子Streamlit文件的页面 st.sidebar(lambda: child_page()) ``` 子Streamlit文件(子app/child_file.py): ```python import streamlit as st # 子页面函数 def child_page(): # 在这里编写您的子页面的代码和功能 st.title("子页面") st.header("这是子页面") # 您的代码和功能... ``` 请确保您的子Streamlit文件路径正确,并且具有执行权限。另外,如果您使用的是较旧版本的Streamlit库,可能还需要通过运行以下命令来设置Python解释器为您的Streamlit应用程序所在的解释器: ```arduino import site site.addsitedir(os.path.abspath("..")) ``` 以上代码仅作为一个示例,您需要根据您的具体情况进行调整和扩展。确保正确设置路径和权限,以及包含正确的函数和方法来实现您的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

预测模型的开发与应用研究

文中代码请大家随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值