当前位置: 首页 > article >正文

vif-方差膨胀因子计算

vif-方差膨胀因子

  • 使用statsmodels中的variance_inflation_factor,数据集使用乳腺癌数据集

    import pandas as pd
    import numpy as np
    from sklearn.datasets import load_breast_cancer
    from tqdm import notebook
    from statsmodels.stats.outliers_influence import variance_inflation_factor
    from statsmodels.tools import add_constant
    
    cancer = load_breast_cancer()
    df = pd.DataFrame(cancer.data,columns=['_'.join(i.split()) for i in cancer.feature_names])
    df['y'] = cancer.target
    
    def calc_vif(df,desc_dict=None):
        """
        df: DataFrame
        desc_dict: 字段中文释义字典
        
        return: vif DataFrame
        """
        X=add_constant(df)
        vif_list = []
        for i in notebook.tqdm(range(X.shape[1])):
            vif = variance_inflation_factor(X.values,i)
            vif_list.append(vif)
        s = pd.DataFrame(vif_list,index=X.columns)
        s = s.reset_index()
        s.columns = ['feature','vif']
        if desc_dict:
            s['中文释义'] = s.feature.map(desc_dict)
            s = s[['feature','中文释义','vif']]
        return s
      
    str_list = df.select_dtypes(include='object').columns.tolist() # string类型
    flo_list = df.select_dtypes(exclude='object').columns.tolist() # 连续型
    
    # vif 不能计算string类型
    df_vif = df[flo_list]
    
    # vif 计算不能有空值
    for i in notebook.tqdm(flo_list):
        df_vif[i] = df_vif[i].fillna(0)
    
    vif_data = calc_vif(df_vif)
    vif_data
    

    20230104I7cHIZ



http://www.kler.cn/a/513150.html

相关文章:

  • Java 中 HashSet 集合元素的去重
  • STM32-串口-UART-Asynchronous
  • 日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
  • 代码随想录算法【Day27】
  • 如何用3个月零基础入门网络安全?_网络安全零基础怎么学习
  • MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
  • macOS如何进入 Application Support 目录(cd: string not in pwd: Application)
  • QD Laser携“Lantana”激光器参展SPIE光子学西部展2025,聚焦紧凑型设计
  • 日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
  • (二叉树)
  • HarmonyOS Next 最强AI智能辅助编程工具 CodeGenie介绍
  • OpenSeaOtter使用手册-变更通知和持续部署
  • C#高级:用控制台程序模拟WebAPI处理接口请求信息
  • 无人设备航电系统的构成
  • 【gopher的java学习笔记】Java中Service与Mapper的关系详解
  • 深度学习-90-大型语言模型LLM之基于LM Studio本地化部署运行自己的大模型
  • 京华春梦,守岁这方烟火人间
  • 使用ssh推送项目到github
  • Java中如何安全地停止线程?
  • C++入门 详细版
  • Linux - 线程池
  • SpringBoot实现轻量级动态定时任务管控及组件化
  • git原远程仓库无法连接后使用本地仓库将所有分支和tags上传到新远程仓库
  • [答疑]这个消息名是写发送数据还是接收数据
  • 不重启JVM,替换掉已经加载的类
  • Flutter 架构原理