食品与疾病关系预测算法赛道-baseline

P粉084495128
发布: 2025-07-29 10:26:44
原创
821人浏览过
电子病历、人工智能、物联网设备、5G技术的快速演化,与大规模的数据资源,成为了数字化医疗的全新支撑。 对于医药公司、医疗机构、科技公司,如何整合全新的技术能力、人才资源、数据资源,为数字化医疗的创新提供更强的动力,成为了共同关切的重要话题。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

食品与疾病关系预测算法赛道-baseline - php中文网

食品与疾病关系预测算法赛道:baseline

一、赛题背景

电子病历、人工智能、物联网设备、5G技术的快速演化,与大规模的数据资源,成为了数字化医疗的全新支撑。 对于医药公司、医疗机构、科技公司,如何整合全新的技术能力、人才资源、数据资源,为数字化医疗的创新提供更强的动力,成为了共同关切的重要话题。

本次数字医疗算法应用创新大赛是对于这一重要话题的主动探索,旨在最大化利用当前高速发展的算法技术与数据资源,培养数字化医疗人才、激励数字化医疗创新。大赛双赛道分别为食品与疾病关系预测算法赛道和生物共融与数字疗法应用赛道。

1.1 赛题任务

本赛道将提供脱敏后的食物与疾病特征,参赛团队根据主办方提供数据,在高度稀疏数据的场景中,进一步挖掘、融合特征并设计模型,以预测食物与疾病的关系。初赛阶段为二分类问题,分类标签分别为 0(无关)、1(存在正面或负面的影响)。

1.2 赛题数据简介

本次算法赛将提供超过 23.5W 的食物、疾病对应关系及其量化得分,其中食物特征超过 200 个,疾病特征由 3 种不同的方式抽取,累积超过 4000 个特征信息。初赛为 0、1 二分类预测,提供食物、疾病特征,与食物疾病的关系标签。

复赛阶段同时评估 0、1 二分类与相关性评级,在原训练集中增加食物疾病相关性评级的标签数据。

1.2.1 训练集

训练集包括疾病特征数据、食物特征数据(共计 348 种食物)、以及食物疾病关系,用于模型训练:

  • 疾病特征集:disease_feature1.csv、disease_feature2.csv、disease_feature3.csv
  • 食物特征集:train_food.csv
  • 食物疾病关系:train_answer.csv
  • 「复赛阶段」食物与疾病关系的相关性评级:semi_train_answer.csv

1.2.2 测试集

初赛测试集分两个阶段(A/B 榜),不提供预测结果,其中:

  • 初赛第一阶段 A 榜测试集: 2023 年 2 月 22 日中午 12:00:00— 2023 年 3 月 20 日中午 12:00:00,包括 A 榜阶段食物特征数据(共计 115 种食物)与初赛 A 榜提交样例,用于模型结果验证:
preliminary_a_food.csv
preliminary_a_submit_sample.csv
登录后复制
       
  • 初赛第二阶段 B 榜测试集: 2023 年 3 月 20 日中午 12:00:00— 2023 年 3 月 22 日中午 12:00:00,包括 B 榜阶段食物特征数据(共计 116 种食物)与初赛 B 榜提交样例,用于模型结果验证:
preliminary_b_food.csvpreliminary_b_submit_sample.csv
登录后复制
       
  • 初赛第二阶段 B 测试集与初赛第一阶段 A 榜测试集分布与规模相同,将于 B 榜提交开始后在赛事主页提供下载,最终初赛排名以初赛第二阶段 B 榜成绩为准。

1.3 字段说明

1.3.1 疾病特征

累计包含 407 种疾病的 4630 种特征信息,三种不同的特征抽取方式将疾病特征划分为三部分特征集,数据高度稀疏。

字段名称 格式 解释说明 范围/特征集1 范围/特征集2 范围/特征集3
disease_id 字符串 疾病 id 共涉及 220 种疾病 共涉及 301 种疾病 共涉及 392 种疾病
F_x 浮点型 疾病特征值 F_0 ~F_4629,字段名称不连续,共涉及 996 种疾病特征 F_0 ~F_4629,字段名称不连续,共涉及 3181 种疾病特征 F_1 ~F_4627,字段名称不连续,共涉及 1453 种疾病特征

1.3.2 食物特征

序列 字段名称 格式 解释说明 示例
1 food_id 字符串 食物 id food_0
2~213 N_x 浮点型 212 种食物特征,字段名称从 N_0 ~N_211 0.123

1.3.3 食物疾病关系

序列 字段名称 格式 解释说明 示例
1 food_id 字符串 食物 id food_0
2 disease_id 字符串 疾病 id disease_0
3 related 整型 食物与疾病是否相关:0(无关)、1(存在正面或负面的影响) 0

1.4 评测方法

食品与疾病关系预测算法赛道-baseline - php中文网        

1.5 提交示例

序列 字段名称 格式 解释说明 示例
1 food_id 字符串 食物 id food_0
2 disease_id 字符串 疾病 id disease_0
3 related_prob 浮点型 食品与疾病预测为 1 的概率若 related_prob >= 0.5,评审计算 f1 得分时判定为类别 1 0.1

1.6 比赛传送门

比赛传送门

二、项目介绍

2.1 项目意义

在本次食物与疾病关系预测挑战赛中,参赛团队将获得脱敏后的大量数据集。这些数据集包含了各种类型的食物和相应的健康指标,例如血压、胆固醇等等。这些指标可以帮助我们了解不同种类的食物对人体健康产生的影响。在实际应用中,由于数据量巨大且高度稀疏,传统的特征提取方法难以有效地提取出有用信息。因此,在本次比赛中,参赛团队需要进一步挖掘、融合特征并设计模型,以预测食物与疾病的关系。

因赛AIGC
因赛AIGC

因赛AIGC解决营销全链路应用场景

因赛AIGC 73
查看详情 因赛AIGC

在这个 Baseline 中,我们分别尝试复杂的特征结合传统的机器学习模型。我们在解决机器学习问题时,一般会遵循以下流程:食品与疾病关系预测算法赛道-baseline - php中文网        

2.2 模型介绍

LightGBM(LightGBM: Gradient Boosting of Big Data Applications)是一种基于梯度提升树模型(Gradient Boosting Decision Tree)的轻量级机器学习算法,用于解决大规模数据集的分类、回归和聚类问题。它的核心思想是利用梯度下降来优化模型参数,从而提高模型的预测准确率。LightGBM的主要特点包括以下几个方面:

  • 轻量级:LightGBM采用了基于梯度的优化方法,避免了过多的参数调整,从而减少了计算量和内存消耗。
  • 高效性:LightGBM的基本思想是利用梯度下降来不断逼近模型的最优参数,从而减少了搜索空间,提高了模型的效率。
  • 可解释性:LightGBM采用了可解释的数据预处理方法,即在训练过程中对数据进行归一化、剪枝等处理,从而提高了模型的可解释性和可靠性。
  • 易用性:LightGBM提供了灵活的模型定义方式,可以根据实际需求进行定制化开发,同时也提供了丰富的可视化工具,便于用户理解和操作。
  • 通用性:LightGBM可以适用于多种机器学习框架和数据存储格式,具有广泛的应用前景。
  • 总之,LightGBM是一种高效、可解释、易用的轻量级机器学习算法,适用于大规模数据集的分类、回归和聚类问题。

三、详细方案实现

3.1 数据分析

3.1.1 数据解压缩

In [1]
!unzip  -d /home/aistudio/data/data200766/  /home/aistudio/data/data200766/初赛A榜测试集.zip!unzip  -d /home/aistudio/data/data200766/  /home/aistudio/data/data200766/初赛B榜测试集.zip!unzip  -d /home/aistudio/data/data200766/   /home/aistudio/data/data200766/训练集.zip
登录后复制
       
Archive:  /home/aistudio/data/data200766/初赛A榜测试集.zip
   creating: /home/aistudio/data/data200766/初赛A榜测试集/
  inflating: /home/aistudio/data/data200766/初赛A榜测试集/preliminary_a_submit_sample.csv  
  inflating: /home/aistudio/data/data200766/初赛A榜测试集/preliminary_a_food.csv  
Archive:  /home/aistudio/data/data200766/初赛B榜测试集.zip
   creating: /home/aistudio/data/data200766/初赛B榜测试集/
  inflating: /home/aistudio/data/data200766/初赛B榜测试集/preliminary_b_submit_sample.csv  
  inflating: /home/aistudio/data/data200766/初赛B榜测试集/preliminary_b_food.csv  
Archive:  /home/aistudio/data/data200766/训练集.zip
   creating: /home/aistudio/data/data200766/训练集/
  inflating: /home/aistudio/data/data200766/训练集/disease_feature3.csv  
  inflating: /home/aistudio/data/data200766/训练集/disease_feature2.csv  
  inflating: /home/aistudio/data/data200766/训练集/disease_feature1.csv  
  inflating: /home/aistudio/data/data200766/训练集/train_answer.csv  
  inflating: /home/aistudio/data/data200766/训练集/train_food.csv
登录后复制
       

3.1.2 导入相关库

In [ ]
!pip install --upgrade pip
!git clone --recursive https://github.com/Microsoft/LightGBM
!cd LightGBM && rm -rf build && mkdir build && cd build && cmake -DUSE_GPU=1 ../../LightGBM && make -j4 && cd ../python-package && python3 setup.py install --precompile --gpu;
登录后复制
   
In [3]
import pandas as pdimport osimport gcimport lightgbm as lgbfrom sklearn.linear_model import SGDRegressor, LinearRegression, Ridgefrom sklearn.preprocessing import MinMaxScalerimport mathimport numpy as npfrom tqdm import tqdmfrom sklearn.model_selection import StratifiedKFold, KFold, GroupKFoldfrom sklearn.metrics import accuracy_score, f1_score, roc_auc_score, log_lossimport matplotlib.pyplot as pltimport timeimport warnings
warnings.filterwarnings('ignore')
登录后复制
   

3.1.3 加载数据

In [4]
disease_feature1 = pd.read_csv("/home/aistudio/data/data200766/训练集/disease_feature1.csv")
disease_feature2 = pd.read_csv("/home/aistudio/data/data200766/训练集/disease_feature2.csv")
disease_feature3 = pd.read_csv("/home/aistudio/data/data200766/训练集/disease_feature3.csv")

train_answer = pd.read_csv("/home/aistudio/data/data200766/训练集/train_answer.csv")
train_food = pd.read_csv("/home/aistudio/data/data200766/训练集/train_food.csv")

preliminary_a_food = pd.read_csv("/home/aistudio/data/data200766/初赛B榜测试集/preliminary_b_food.csv")
preliminary_a_submit_sample = pd.read_csv("/home/aistudio/data/data200766/初赛B榜测试集/preliminary_b_submit_sample.csv")
pd.set_option('display.max_columns', None)
登录后复制
   
In [5]
del preliminary_a_submit_sample['related_prob']
data = pd.concat([train_answer, preliminary_a_submit_sample], axis = 0).reset_index(drop=True)
data.head()
登录后复制
       
  food_id   disease_id  related
0  food_0  disease_998      0.0
1  food_0  disease_861      0.0
2  food_0  disease_559      0.0
3  food_0  disease_841      0.0
4  food_0   disease_81      0.0
登录后复制
               

这里直接使用每个变量后的数字进行编码,当然也可以使用labelencoder的方式。

In [6]
data['food'] = data['food_id'].apply(lambda x : int(x.split('_')[1]))
data['disease'] = data['disease_id'].apply(lambda x : int(x.split('_')[1]))
登录后复制
   
In [7]
food = pd.concat([train_food, preliminary_a_food], axis = 0).reset_index(drop=True)
food.head()
登录后复制
       
  food_id  N_0  N_1  N_2    N_3  N_4    N_5   N_6    N_7  N_8  N_9  N_10  \
0  food_0  NaN  NaN  NaN    NaN  0.0    NaN   NaN    NaN  NaN  NaN   NaN   
1  food_1  NaN  NaN  NaN    NaN  0.0    NaN   NaN    NaN  NaN  NaN   NaN   
2  food_4  NaN  NaN  NaN    NaN  0.0    NaN   NaN    NaN  NaN  NaN   NaN   
3  food_5  NaN  NaN  NaN  0.068  0.0  0.045  0.75  0.314  NaN  NaN   NaN   
4  food_6  NaN  NaN  NaN  0.115  0.0  0.091  0.58  0.508  NaN  NaN   0.6   

   N_11  N_12  N_13   N_14  N_15  N_16   N_17  N_18  N_19    N_20  N_21  N_22  \
0   NaN   NaN   0.0   32.0   NaN   NaN   2.10   NaN   6.0    87.0   NaN   0.0   
1   NaN   NaN   0.0  268.0   NaN   NaN  21.01   NaN   0.0     1.0   NaN   0.0   
2   NaN   NaN   0.0   62.0   NaN   NaN  79.32   NaN   0.0     0.0   NaN   0.0   
3   NaN   NaN   0.0   13.0   NaN   NaN  11.12   NaN  19.0  1094.0   NaN   0.0   
4   NaN   NaN   0.0   24.0   NaN   NaN   3.88   NaN   9.0   449.0   NaN   0.0   

   N_23  N_24  N_25  N_26  N_27  N_28  N_29  N_30  N_31  N_32   N_33  N_34  \
0   NaN   NaN   NaN   NaN   NaN  14.4   NaN   NaN   NaN   NaN  0.157   NaN   
1   NaN   NaN   NaN   NaN   NaN  52.1   NaN   NaN   NaN   NaN  1.099   NaN   
2   NaN   NaN   NaN   NaN   NaN  11.1   NaN   NaN   NaN   NaN  0.272   NaN   
3   NaN   NaN   NaN   NaN   NaN   2.8   NaN   NaN   NaN   NaN  0.078   NaN   
4   NaN   NaN   NaN   NaN   NaN  16.0   NaN   NaN   NaN   NaN  0.189   NaN   

    N_35  N_36   N_37  N_38  N_39  N_40  N_41   N_42  N_43  N_44  N_45  N_46  \
0    6.0   NaN    NaN   NaN   NaN   NaN   NaN   23.0   NaN   NaN   NaN   NaN   
1    0.0   NaN    NaN   NaN   NaN   NaN   NaN  598.0   NaN   NaN   NaN   NaN   
2    0.0   NaN    NaN   NaN   NaN   NaN   NaN  299.0   NaN   NaN   NaN   NaN   
3  104.0   NaN  0.003   NaN   NaN   NaN   NaN  124.5   NaN   NaN   NaN   NaN   
4    0.0   NaN  0.031   NaN   NaN   NaN   NaN   52.5   NaN   NaN   NaN   NaN   

   N_47    N_48    N_49   N_50  N_51  N_52  N_53  N_54  N_55  N_56  N_57  \
0   NaN   0.056   0.409  0.069   NaN   NaN   NaN   NaN   NaN   NaN   1.9   
1   NaN  33.076  12.955  4.092   NaN   NaN   NaN   NaN   NaN   NaN  10.9   
2   NaN   0.024   0.053  0.094   NaN   NaN   NaN   NaN   NaN   NaN   4.5   
3   NaN   0.170   0.077  0.027   0.0   NaN   NaN   NaN   NaN   NaN   2.0   
4   NaN   0.000   0.050  0.040   0.0   NaN   NaN   NaN   NaN   NaN   2.1   

   N_58  N_59  N_60  N_61  N_62  N_63  N_64  N_65  N_66  N_67   N_68   N_69  \
0   NaN  36.0  36.0  36.0   0.0   NaN   NaN   NaN   NaN   NaN    NaN    NaN   
1   NaN  55.0  55.0  55.0   0.0   NaN   NaN   NaN   NaN   NaN    NaN    NaN   
2   NaN   5.0   5.0   5.0   0.0   NaN   NaN   NaN   NaN   NaN    NaN    NaN   
3   NaN   9.0   9.0   9.0   0.0  0.94   0.0   NaN   NaN  2.37  0.157  0.040   
4   NaN  52.0  52.0  52.0   0.0  1.00   0.0   NaN   NaN  0.65  0.233  0.093   

   N_70   N_71  N_72  N_73  N_74   N_75  N_76   N_77  N_78   N_79  N_80  \
0   NaN    NaN   NaN   NaN  0.96    NaN   NaN    NaN   NaN    0.0   0.0   
1   NaN    NaN   NaN   NaN  3.73    NaN   NaN    NaN   NaN    1.0   0.0   
2   NaN    NaN   NaN   NaN  1.79    NaN   NaN    NaN   NaN    0.0   0.0   
3   NaN  0.027   NaN   NaN  0.39  0.041   0.0  0.077   NaN   89.0   0.0   
4   NaN  0.049   NaN   NaN  2.14  0.075   0.0  0.128   NaN  710.0   0.0   

    N_81   N_82  N_83  N_84   N_85   N_86  N_87  N_88  N_89   N_90  N_91  \
0    NaN   27.0   NaN   NaN    NaN    NaN   NaN   NaN   NaN  0.000   NaN   
1    NaN  279.0   NaN   NaN    NaN    NaN   NaN   NaN   NaN  0.259   NaN   
2    NaN   36.0   NaN   NaN    NaN    NaN   NaN   NaN   NaN  0.001   NaN   
3  0.097   10.0   NaN  0.06  0.077  0.006   NaN   NaN   NaN  0.000   NaN   
4  0.104   14.0   NaN  0.00  0.158  0.031   0.0   NaN   0.0  0.000   NaN   

   N_92  N_93    N_94  N_95   N_96  N_97  N_98  N_99  N_100  N_101  N_102  \
0   NaN   NaN   0.056   NaN  0.000   NaN   0.0   NaN    NaN  0.481    NaN   
1   NaN   NaN  32.754   NaN  0.007   NaN   0.0   NaN    NaN  3.637    NaN   
2   NaN   NaN   0.023   NaN  0.000   NaN   0.0   NaN    NaN  0.766    NaN   
3   NaN   NaN   0.170   NaN  0.000   NaN   0.0   NaN    NaN  0.600    NaN   
4   0.0   NaN   0.000   NaN  0.000   NaN   0.0   NaN    NaN  0.978    NaN   

   N_103  N_104  N_105  N_106  N_107  N_108  N_109  N_110  N_111  N_112  \
0    NaN    NaN    NaN   70.0    NaN    NaN    NaN    NaN   79.0    NaN   
1    NaN    NaN    NaN  471.0    NaN    NaN    NaN    NaN  713.0    NaN   
2    NaN    NaN    NaN   98.0    NaN    NaN    NaN    NaN  744.0    NaN   
3    NaN  0.240  0.052   23.0    NaN    NaN   18.0    NaN  259.0  0.101   
4    NaN  0.274  0.075   52.0    NaN    NaN   24.0    NaN  202.0  0.071   

   N_113   N_114  N_115  N_116  N_117  N_118  N_119  N_120  N_121  N_122  \
0   3.99   0.234    NaN    NaN    NaN    NaN  0.175    NaN    NaN    NaN   
1  20.96  12.945    NaN    NaN    NaN    NaN  0.010    NaN    NaN    NaN   
2   3.30   0.039    NaN    NaN    NaN    NaN  0.014    NaN    NaN    NaN   
3   1.40   0.077    NaN    NaN    NaN    NaN  0.000    NaN    NaN    NaN   
4   2.20   0.040    NaN    NaN    NaN    NaN  0.010    NaN    NaN    NaN   

   N_123  N_124  N_125  N_126  N_127  N_128  N_129  N_130  N_131  N_132  \
0    NaN    0.0    NaN    NaN    NaN    NaN    NaN    NaN    0.0    NaN   
1    NaN    0.0    NaN    NaN    NaN    NaN    NaN    NaN    0.0    NaN   
2    NaN    0.0    NaN    NaN    NaN    NaN    NaN    NaN    0.0    NaN   
3    NaN    0.0    NaN    NaN    NaN    NaN    NaN    NaN    0.0    NaN   
4    NaN    0.0    NaN    0.0    0.0    NaN    NaN    NaN    0.0    NaN   

   N_133  N_134  N_135  N_136  N_137  N_138  N_139  N_140  N_141  N_142  \
0    NaN    0.0    NaN    NaN    NaN    NaN    NaN    0.0    NaN    0.0   
1    NaN    0.0    NaN    NaN    NaN    NaN    NaN    0.0    NaN    0.0   
2    NaN    0.0    NaN    NaN    NaN    NaN    NaN    0.0    NaN    0.0   
3    NaN    0.0    NaN    NaN    NaN    NaN    NaN    0.0    NaN    0.0   
4    NaN    0.0    NaN    NaN    NaN    NaN    NaN    0.0    NaN    0.0   

   N_143  N_144  N_145  N_146  N_147  N_148  N_149  N_150  N_151  N_152  \
0    NaN    NaN    0.0  0.126    0.6    NaN    0.0    NaN  0.000    NaN   
1    NaN    NaN    0.0  1.197    2.0    NaN    0.0    NaN  0.000    NaN   
2    NaN    NaN    0.0  0.125    0.6    NaN    0.0    NaN  0.001    NaN   
3    NaN    NaN    0.0  0.040    0.1  0.083    0.0    NaN  0.000    NaN   
4    NaN    NaN    0.0  0.141    2.3  0.106    0.0    NaN  0.000    NaN   

   N_153  N_154  N_155  N_156  N_157  N_158  N_159  N_160  N_161  N_162  \
0  0.002    NaN  0.059    NaN  0.008    NaN    NaN    NaN    NaN  0.000   
1  0.019    NaN  3.348    NaN  0.704    NaN    NaN    NaN    NaN  0.000   
2  0.004    NaN  0.056    NaN  0.013    NaN    NaN    NaN    NaN  0.007   
3  0.000    NaN  0.024    NaN  0.003    NaN    NaN    NaN    NaN  0.000   
4  0.000    0.0  0.040    0.0  0.000    0.0    NaN    0.0    0.0  0.000   

   N_163  N_164  N_165  N_166  N_167  N_168  N_169  N_170  N_171  N_172  \
0    0.0  0.000    6.0    NaN    NaN    NaN   0.20    NaN    NaN    NaN   
1    0.0  0.000    3.0    NaN    NaN    NaN   4.86    NaN    NaN    NaN   
2    0.0  0.001   26.0    NaN    NaN    NaN  65.18    NaN    NaN    NaN   
3    0.0  0.000    1.0    NaN    NaN   5.87   9.24    NaN    NaN    NaN   
4    0.0  0.000    2.0    NaN    NaN   0.23   1.88    NaN    NaN    NaN   

   N_173  N_174  N_175  N_176  N_177  N_178  N_179  N_180  N_181  N_182  \
0    NaN    NaN    NaN    0.0  0.076    NaN    NaN    NaN    NaN    NaN   
1    NaN    NaN    NaN    0.0  0.077    NaN    NaN    NaN    NaN    NaN   
2    NaN    NaN    NaN    0.0  0.106    NaN    NaN    NaN    NaN    NaN   
3    NaN    NaN    NaN    0.0  0.030  0.047    NaN    NaN    NaN    NaN   
4    NaN    NaN    NaN    0.0  0.143  0.084    0.0    0.0   0.09    NaN   

   N_183  N_184  N_185  N_186  N_187  N_188  N_189  N_190  N_191  N_192  \
0    NaN    NaN    NaN    NaN    NaN   0.69    NaN    NaN    NaN    NaN   
1    NaN    NaN    NaN    NaN    NaN  52.54    NaN    NaN    NaN    NaN   
2    NaN    NaN    NaN    NaN    NaN   0.25    NaN    NaN    NaN    NaN   
3    NaN    NaN    NaN    NaN    NaN   0.39    NaN  0.015  0.029  0.047   
4    NaN    NaN    NaN    NaN    NaN   0.12    NaN  0.027  0.052  0.115   

    N_193  N_194  N_195  N_196  N_197  N_198  N_199  N_200  N_201  N_202  \
0     NaN    8.0    0.0    0.0  0.034    8.2    0.0    NaN    NaN    NaN   
1     NaN    0.0    0.0    0.0  0.136    0.0    0.0    NaN    NaN    NaN   
2     NaN    0.0    0.0    0.0  0.174    2.3    0.0    NaN    NaN    NaN   
3  1926.0   96.0    0.0    0.0  0.054   10.0    0.0    0.0    NaN    NaN   
4   756.0   38.0    0.0    0.0  0.091    5.6    0.0    0.0    NaN    NaN   

   N_203  N_204  N_205  N_206  N_207  N_208  N_209  N_210  N_211  
0    NaN   0.02    0.0    NaN    NaN   30.5  92.82    NaN   0.92  
1    NaN  23.90    0.0    NaN    NaN    0.0   2.41    NaN   3.31  
2    NaN   0.12    0.0    NaN    NaN    3.5  15.46    NaN   0.36  
3    NaN   0.89    0.0    NaN    NaN    3.3  86.35    NaN   0.20  
4    NaN   1.13    0.0    0.0    NaN   41.6  93.22    NaN   0.54
登录后复制
               

3.1.4 EDA

In [ ]
# 查看数据缺失情况pd.set_option('display.max_rows', None)
((food.isnull().sum())/food.shape[0]).sort_values(ascending=False).map(lambda x:"{:.2%}".format(x))
登录后复制
   

食品与疾病关系预测算法赛道-baseline - php中文网        

In [9]
#只保留缺失率少于10%的列food=food[['N_198','N_33','N_211','N_82','N_101','N_42','N_111','N_165','N_177','N_146','N_17','N_113','N_106','N_14','N_74','N_209','N_188','food_id' ]] 
food.head(5)
登录后复制
       
   N_198   N_33  N_211   N_82  N_101   N_42  N_111  N_165  N_177  N_146  \
0    8.2  0.157   0.92   27.0  0.481   23.0   79.0    6.0  0.076  0.126   
1    0.0  1.099   3.31  279.0  3.637  598.0  713.0    3.0  0.077  1.197   
2    2.3  0.272   0.36   36.0  0.766  299.0  744.0   26.0  0.106  0.125   
3   10.0  0.078   0.20   10.0  0.600  124.5  259.0    1.0  0.030  0.040   
4    5.6  0.189   0.54   14.0  0.978   52.5  202.0    2.0  0.143  0.141   

    N_17  N_113  N_106   N_14  N_74  N_209  N_188 food_id  
0   2.10   3.99   70.0   32.0  0.96  92.82   0.69  food_0  
1  21.01  20.96  471.0  268.0  3.73   2.41  52.54  food_1  
2  79.32   3.30   98.0   62.0  1.79  15.46   0.25  food_4  
3  11.12   1.40   23.0   13.0  0.39  86.35   0.39  food_5  
4   3.88   2.20   52.0   24.0  2.14  93.22   0.12  food_6
登录后复制
               

3.2 数据处理

3.2.1 目标编码

由于本题只有两个离散变量food_id 和disease_id ,而测试集中都是新的foodid

In [10]
cat_list = ['disease']def stat(df, df_merge, group_by, agg):
    group = df.groupby(group_by).agg(agg)

    columns = []    for on, methods in agg.items():        for method in methods:
            columns.append('{}_{}_{}'.format('_'.join(group_by), on, method))
    group.columns = columns
    group.reset_index(inplace=True)
    df_merge = df_merge.merge(group, on=group_by, how='left')    del (group)
    gc.collect()    return df_mergedef statis_feat(df_know, df_unknow,cat_list):
    for f in tqdm(cat_list):
        df_unknow = stat(df_know, df_unknow, [f], {'related': ['mean']})    return df_unknow


df_train = data[~data['related'].isnull()]
df_train = df_train.reset_index(drop=True)
df_test = data[data['related'].isnull()]

df_stas_feat = Nonekf = StratifiedKFold(n_splits=5, random_state=2020, shuffle=True)for train_index, val_index in kf.split(df_train, df_train['related']):
    df_fold_train = df_train.iloc[train_index]
    df_fold_val = df_train.iloc[val_index]

    df_fold_val = statis_feat(df_fold_train, df_fold_val,cat_list)
    df_stas_feat = pd.concat([df_stas_feat, df_fold_val], axis=0)    del (df_fold_train)    del (df_fold_val)
    gc.collect()

df_test = statis_feat(df_train, df_test,cat_list)
data = pd.concat([df_stas_feat, df_test], axis=0)
data = data.reset_index(drop=True)del (df_stas_feat)del (df_train)del (df_test)
登录后复制
       
100%|██████████| 1/1 [00:00<00:00,  7.57it/s]
100%|██████████| 1/1 [00:00<00:00,  9.00it/s]
100%|██████████| 1/1 [00:00<00:00,  9.45it/s]
100%|██████████| 1/1 [00:00<00:00,  8.77it/s]
100%|██████████| 1/1 [00:00<00:00,  8.65it/s]
100%|██████████| 1/1 [00:00<00:00,  9.16it/s]
登录后复制
       

3.2.1 疾病特征处理

使用TruncatedSVD 的方法,对疾病特征进行降维,维度均为128

In [11]
f_col = [col for col in disease_feature1.columns if 'F' in col]
登录后复制
   
In [12]
disease_feature_1_ = disease_feature1.copy()from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer,TfidfTransformer 
from sklearn.decomposition import TruncatedSVD, SparsePCA
disease_feature_1_ = disease_feature_1_.fillna(0)
decom=TruncatedSVD(n_components=128, n_iter = 20, random_state=2023) 

decom_x=decom.fit_transform(disease_feature_1_.iloc[:,1:]) 
decom_feas=pd.DataFrame(decom_x)
decom_feas.columns=['disease1_svd_'+str(i) for i in range(decom_x.shape[1])]
登录后复制
   
In [13]
disease_feature1 = disease_feature1[['disease_id']]for col in decom_feas:
    disease_feature1[col] = decom_feas[col]
登录后复制
   
In [14]
f_col = [col for col in disease_feature2.columns if 'F' in col]
登录后复制
   
In [15]
disease_feature_2_ = disease_feature2.copy()from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer,TfidfTransformer 
from sklearn.decomposition import TruncatedSVD, SparsePCA
disease_feature_2_ = disease_feature_2_.fillna(0)
decom=TruncatedSVD(n_components=128, n_iter = 20, random_state=2023) 

decom_x=decom.fit_transform(disease_feature_2_.iloc[:,1:]) 
decom_feas=pd.DataFrame(decom_x)
decom_feas.columns=['disease2_svd_'+str(i) for i in range(decom_x.shape[1])]
登录后复制
   
In [16]
disease_feature2 = disease_feature2[['disease_id']]for col in decom_feas:
    disease_feature2[col] = decom_feas[col]
登录后复制
   
In [17]
f_col = [col for col in disease_feature3.columns if 'F' in col]
登录后复制
   
In [18]
disease_feature_3_ = disease_feature3.copy()from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer,TfidfTransformer 
from sklearn.decomposition import TruncatedSVD, SparsePCA
disease_feature_3_ = disease_feature_3_.fillna(0)
decom=TruncatedSVD(n_components=128, n_iter = 20, random_state=2023) 

decom_x=decom.fit_transform(disease_feature_3_.iloc[:,1:]) 
decom_feas=pd.DataFrame(decom_x)
decom_feas.columns=['disease3_svd_'+str(i) for i in range(decom_x.shape[1])]
登录后复制
   
In [19]
disease_feature3 = disease_feature3[['disease_id']]for col in decom_feas:
    disease_feature3[col] = decom_feas[col]
登录后复制
   
In [20]
data = data.merge(food, on = 'food_id', how = 'left')
data = data.merge(disease_feature1, on = 'disease_id', how = 'left')
data = data.merge(disease_feature2, on = 'disease_id', how = 'left')
data = data.merge(disease_feature3, on = 'disease_id', how = 'left')
data.head()
登录后复制
       
  food_id    disease_id  related  food  disease  disease_related_mean  N_198  \
0  food_0   disease_861      0.0     0      861              0.003521    8.2   
1  food_0   disease_839      0.0     0      839              0.007299    8.2   
2  food_0    disease_50      0.0     0       50              0.018382    8.2   
3  food_0  disease_1370      0.0     0     1370              0.214286    8.2   
4  food_0  disease_1015      0.0     0     1015              0.202749    8.2   

    N_33  N_211  N_82  N_101  N_42  N_111  N_165  N_177  N_146  N_17  N_113  \
0  0.157   0.92  27.0  0.481  23.0   79.0    6.0  0.076  0.126   2.1   3.99   
1  0.157   0.92  27.0  0.481  23.0   79.0    6.0  0.076  0.126   2.1   3.99   
2  0.157   0.92  27.0  0.481  23.0   79.0    6.0  0.076  0.126   2.1   3.99   
3  0.157   0.92  27.0  0.481  23.0   79.0    6.0  0.076  0.126   2.1   3.99   
4  0.157   0.92  27.0  0.481  23.0   79.0    6.0  0.076  0.126   2.1   3.99   

   N_106  N_14  N_74  N_209  N_188  disease1_svd_0  disease1_svd_1  \
0   70.0  32.0  0.96  92.82   0.69             NaN             NaN   
1   70.0  32.0  0.96  92.82   0.69             NaN             NaN   
2   70.0  32.0  0.96  92.82   0.69             NaN             NaN   
3   70.0  32.0  0.96  92.82   0.69             NaN             NaN   
4   70.0  32.0  0.96  92.82   0.69             NaN             NaN   

   disease1_svd_2  disease1_svd_3  disease1_svd_4  disease1_svd_5  \
0             NaN             NaN             NaN             NaN   
1             NaN             NaN             NaN             NaN   
2             NaN             NaN             NaN             NaN   
3             NaN             NaN             NaN             NaN   
4             NaN             NaN             NaN             NaN   

   disease1_svd_6  disease1_svd_7  disease1_svd_8  disease1_svd_9  \
0             NaN             NaN             NaN             NaN   
1             NaN             NaN             NaN             NaN   
2             NaN             NaN             NaN             NaN   
3             NaN             NaN             NaN             NaN   
4             NaN             NaN             NaN             NaN   

   disease1_svd_10  disease1_svd_11  disease1_svd_12  disease1_svd_13  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_14  disease1_svd_15  disease1_svd_16  disease1_svd_17  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_18  disease1_svd_19  disease1_svd_20  disease1_svd_21  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_22  disease1_svd_23  disease1_svd_24  disease1_svd_25  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_26  disease1_svd_27  disease1_svd_28  disease1_svd_29  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_30  disease1_svd_31  disease1_svd_32  disease1_svd_33  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_34  disease1_svd_35  disease1_svd_36  disease1_svd_37  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_38  disease1_svd_39  disease1_svd_40  disease1_svd_41  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_42  disease1_svd_43  disease1_svd_44  disease1_svd_45  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_46  disease1_svd_47  disease1_svd_48  disease1_svd_49  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_50  disease1_svd_51  disease1_svd_52  disease1_svd_53  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_54  disease1_svd_55  disease1_svd_56  disease1_svd_57  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_58  disease1_svd_59  disease1_svd_60  disease1_svd_61  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_62  disease1_svd_63  disease1_svd_64  disease1_svd_65  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_66  disease1_svd_67  disease1_svd_68  disease1_svd_69  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_70  disease1_svd_71  disease1_svd_72  disease1_svd_73  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_74  disease1_svd_75  disease1_svd_76  disease1_svd_77  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_78  disease1_svd_79  disease1_svd_80  disease1_svd_81  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_82  disease1_svd_83  disease1_svd_84  disease1_svd_85  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_86  disease1_svd_87  disease1_svd_88  disease1_svd_89  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_90  disease1_svd_91  disease1_svd_92  disease1_svd_93  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_94  disease1_svd_95  disease1_svd_96  disease1_svd_97  \
0              NaN              NaN              NaN              NaN   
1              NaN              NaN              NaN              NaN   
2              NaN              NaN              NaN              NaN   
3              NaN              NaN              NaN              NaN   
4              NaN              NaN              NaN              NaN   

   disease1_svd_98  disease1_svd_99  disease1_svd_100  disease1_svd_101  \
0              NaN              NaN               NaN               NaN   
1              NaN              NaN               NaN               NaN   
2              NaN              NaN               NaN               NaN   
3              NaN              NaN               NaN               NaN   
4              NaN              NaN               NaN               NaN   

   disease1_svd_102  disease1_svd_103  disease1_svd_104  disease1_svd_105  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_106  disease1_svd_107  disease1_svd_108  disease1_svd_109  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_110  disease1_svd_111  disease1_svd_112  disease1_svd_113  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_114  disease1_svd_115  disease1_svd_116  disease1_svd_117  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_118  disease1_svd_119  disease1_svd_120  disease1_svd_121  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_122  disease1_svd_123  disease1_svd_124  disease1_svd_125  \
0               NaN               NaN               NaN               NaN   
1               NaN               NaN               NaN               NaN   
2               NaN               NaN               NaN               NaN   
3               NaN               NaN               NaN               NaN   
4               NaN               NaN               NaN               NaN   

   disease1_svd_126  disease1_svd_127  disease2_svd_0  disease2_svd_1  \
0               NaN               NaN       21.207893        0.450860   
1               NaN               NaN       35.865549       -0.229259   
2               NaN               NaN       41.508018       -0.271734   
3               NaN               NaN       41.529790       -0.260051   
4               NaN               NaN        1.194324        0.016060   

   disease2_svd_2  disease2_svd_3  disease2_svd_4  disease2_svd_5  \
0        0.247976       -0.094030       -0.010093       -0.165738   
1       -0.043399       -0.001870       -0.052036       -0.012363   
2       -0.049130       -0.031626       -0.067875       -0.005537   
3       -0.054846       -0.039315       -0.049941        0.002167   
4        0.021213       -0.019584        0.053625        0.013038   

   disease2_svd_6  disease2_svd_7  disease2_svd_8  disease2_svd_9  \
0        0.063872       -0.106507       -0.206626        0.123055   
1       -0.024822       -0.016792       -0.026163       -0.001283   
2       -0.014704       -0.017518       -0.034036       -0.000631   
3       -0.012543       -0.030178       -0.019744       -0.009011   
4        0.009994       -0.015606        0.062566       -0.061401   

   disease2_svd_10  disease2_svd_11  disease2_svd_12  disease2_svd_13  \
0        -0.046291         0.103308         0.114410        -0.150404   
1        -0.001989         0.002888        -0.007876         0.008097   
2        -0.004023         0.013805         0.000356        -0.005335   
3        -0.001326         0.012445         0.004044        -0.010835   
4         0.022027        -0.038624        -0.055178        -0.048019   

   disease2_svd_14  disease2_svd_15  disease2_svd_16  disease2_svd_17  \
0         0.008024        -0.075472         0.328313        -0.054091   
1         0.001597        -0.000355        -0.000594        -0.002079   
2         0.003229         0.000713         0.000098        -0.005014   
3        -0.004046         0.019301         0.002939        -0.006936   
4         0.759425         0.398878         0.111763         0.015837   

   disease2_svd_18  disease2_svd_19  disease2_svd_20  disease2_svd_21  \
0         0.210355         0.139096        -0.028611         0.080221   
1         0.020368        -0.003079         0.021870        -0.008940   
2        -0.005383        -0.005519         0.003013        -0.002217   
3        -0.004579        -0.001534        -0.000085         0.007771   
4         0.054869        -0.047739         0.036110        -0.022543   

   disease2_svd_22  disease2_svd_23  disease2_svd_24  disease2_svd_25  \
0        -0.151398         0.034177         0.041904         0.002051   
1         0.004237        -0.004279         0.015770         0.001230   
2        -0.009330        -0.005702         0.001625        -0.008246   
3        -0.027475        -0.001232         0.001875         0.000077   
4         0.029236        -0.030270        -0.006784        -0.003725   

   disease2_svd_26  disease2_svd_27  disease2_svd_28  disease2_svd_29  \
0        -0.131626         0.076600        -0.131167         0.006474   
1         0.004035        -0.001987         0.010776        -0.003411   
2        -0.001536        -0.006982         0.013521         0.000661   
3        -0.008815        -0.020402        -0.001688        -0.008872   
4        -0.032971         0.016045         0.015254        -0.008581   

   disease2_svd_30  disease2_svd_31  disease2_svd_32  disease2_svd_33  \
0        -0.097548         0.012424         0.028256         0.006985   
1        -0.009880         0.001792        -0.013636        -0.000586   
2        -0.003444         0.004891        -0.000032        -0.000943   
3        -0.005646         0.016212         0.013411        -0.018793   
4        -0.012702        -0.011345        -0.010733         0.009206   

   disease2_svd_34  disease2_svd_35  disease2_svd_36  disease2_svd_37  \
0         0.010723         0.017358        -0.011925        -0.021033   
1         0.011546        -0.014159         0.000428        -0.002775   
2        -0.001430         0.004226         0.000832         0.002662   
3         0.016397        -0.003017        -0.004065         0.003183   
4        -0.009229         0.000618         0.005975        -0.003449   

   disease2_svd_38  disease2_svd_39  disease2_svd_40  disease2_svd_41  \
0         0.015393         0.006445        -0.019345        -0.033685   
1        -0.001416         0.009633         0.003450        -0.003883   
2         0.003511         0.000865        -0.001511         0.001598   
3        -0.006690         0.018216        -0.004084        -0.009724   
4        -0.007818        -0.009403         0.007591         0.002266   

   disease2_svd_42  disease2_svd_43  disease2_svd_44  disease2_svd_45  \
0        -0.030142         0.020834         0.023872        -0.025286   
1        -0.002826         0.000251         0.009810        -0.008360   
2         0.003186        -0.005701        -0.000564         0.000999   
3         0.006243        -0.004513        -0.000231         0.000521   
4        -0.004004        -0.002725        -0.003839         0.002820   

   disease2_svd_46  disease2_svd_47  disease2_svd_48  disease2_svd_49  \
0         0.003081         0.007100         0.019440         0.003406   
1        -0.000637         0.003437        -0.002244         0.002247   
2         0.000164         0.000142         0.002312         0.001523   
3        -0.000797         0.003050        -0.001297        -0.004875   
4         0.000835        -0.002778         0.000629        -0.002743   

   disease2_svd_50  disease2_svd_51  disease2_svd_52  disease2_svd_53  \
0        -0.015664         0.007384         0.004627         0.010140   
1        -0.000411         0.000358         0.000566         0.002944   
2         0.002301        -0.000096        -0.000341         0.000267   
3        -0.003577        -0.001533        -0.001472         0.001390   
4        -0.000550         0.000052         0.000554        -0.001329   

   disease2_svd_54  disease2_svd_55  disease2_svd_56  disease2_svd_57  \
0         0.016964        -0.001596        -0.000890        -0.002959   
1        -0.000523        -0.000021        -0.000101        -0.000175   
2         0.001574        -0.000061         0.000018        -0.000039   
3         0.000372        -0.000034        -0.000062        -0.000605   
4         0.000971         0.000060         0.000091         0.000130   

   disease2_svd_58  disease2_svd_59  disease2_svd_60  disease2_svd_61  \
0         0.004079        -0.001305         0.000426         0.000269   
1         0.000425         0.000068         0.000147         0.000108   
2        -0.000093        -0.000128        -0.000114        -0.000045   
3         0.000263        -0.000107         0.000003         0.000030   
4        -0.000430        -0.000074        -0.000154        -0.000046   

   disease2_svd_62  disease2_svd_63  disease2_svd_64  disease2_svd_65  \
0         0.000391         0.000193     1.491195e-04        -0.000022   
1        -0.000043        -0.000021     1.726565e-05        -0.000090   
2         0.000055        -0.000003    -8.250175e-06         0.000030   
3         0.000036         0.000024    -8.291036e-07        -0.000040   
4         0.000024         0.000015    -4.640532e-06        -0.000004   

   disease2_svd_66  disease2_svd_67  disease2_svd_68  disease2_svd_69  \
0         0.000075        -0.000328        -0.000104        -0.000818   
1        -0.000079         0.000011        -0.000041         0.000142   
2         0.000038        -0.000022         0.000025        -0.000064   
3        -0.000080         0.000041        -0.000044        -0.000096   
4         0.000006         0.000035         0.000012        -0.000102   

   disease2_svd_70  disease2_svd_71  disease2_svd_72  disease2_svd_73  \
0        -0.000536         0.000425         0.000675         0.000525   
1        -0.000004         0.000041        -0.000045        -0.000070   
2        -0.000052        -0.000010         0.000063        -0.000024   
3        -0.000057         0.000017         0.000058        -0.000022   
4        -0.000041        -0.000042         0.000003         0.000004   

   disease2_svd_74  disease2_svd_75  disease2_svd_76  disease2_svd_77  \
0        -0.000909         0.000450        -0.000754         0.002798   
1        -0.000194         0.000516         0.000210         0.000677   
2         0.000188        -0.000111        -0.000098        -0.000364   
3        -0.000132         0.000107         0.000208         0.000220   
4         0.000252        -0.000294        -0.000062        -0.000560   

   disease2_svd_78  disease2_svd_79  disease2_svd_80  disease2_svd_81  \
0        -0.001876        -0.003088        -0.002775        -0.001081   
1        -0.000440        -0.000186        -0.000202        -0.000044   
2        -0.000028         0.000122        -0.000164         0.000070   
3        -0.000585        -0.000699        -0.000664         0.000296   
4         0.000023        -0.000038        -0.000145         0.000341   

   disease2_svd_82  disease2_svd_83  disease2_svd_84  disease2_svd_85  \
0         0.000486         0.004900         0.000529         0.004128   
1        -0.000397         0.001779         0.000118        -0.000687   
2        -0.000014        -0.000859        -0.000266         0.000222   
3        -0.000517         0.000028         0.000650        -0.000914   
4         0.000053        -0.001102         0.000195        -0.000488   

   disease2_svd_86  disease2_svd_87  disease2_svd_88  disease2_svd_89  \
0         0.009350         0.002341        -0.007186        -0.009234   
1         0.000381         0.000223         0.000390        -0.000753   
2         0.000684        -0.000063        -0.000192        -0.000442   
3        -0.000190         0.000124        -0.001585        -0.000599   
4        -0.000224         0.000328        -0.000370         0.000285   

   disease2_svd_90  disease2_svd_91  disease2_svd_92  disease2_svd_93  \
0        -0.007480         0.001355         0.003528        -0.017621   
1        -0.000451        -0.002448        -0.001939        -0.001105   
2         0.000511         0.000777         0.000287        -0.000420   
3        -0.000961         0.000682         0.000873        -0.000953   
4         0.001096        -0.000158         0.001338         0.000476   

   disease2_svd_94  disease2_svd_95  disease2_svd_96  disease2_svd_97  \
0         0.005953         0.010327         0.004300         0.024545   
1        -0.000197        -0.001683         0.004916         0.001206   
2         0.000969         0.001567         0.001200        -0.000256   
3         0.001415        -0.004218         0.004151         0.003551   
4         0.002296         0.000573         0.001374        -0.001213   

   disease2_svd_98  disease2_svd_99  disease2_svd_100  disease2_svd_101  \
0         0.016885         0.013065         -0.004008          0.020067   
1        -0.000385        -0.004373          0.004536          0.001937   
2         0.000491        -0.000133         -0.000430         -0.001268   
3         0.000414        -0.001865         -0.000427         -0.000561   
4        -0.000561         0.000960         -0.000290         -0.000561   

   disease2_svd_102  disease2_svd_103  disease2_svd_104  disease2_svd_105  \
0         -0.027640         -0.020863          0.002466         -0.009659   
1         -0.003012         -0.001530          0.002150          0.001011   
2         -0.002388         -0.000176         -0.002063         -0.002062   
3          0.000712          0.000712         -0.002766         -0.002378   
4         -0.001062         -0.001659          0.000637         -0.004378   

   disease2_svd_106  disease2_svd_107  disease2_svd_108  disease2_svd_109  \
0         -0.004832         -0.006345          0.007009          0.018090   
1         -0.001764          0.003546         -0.001815          0.002938   
2          0.001144          0.001614          0.001952          0.002008   
3          0.000731         -0.000705          0.004565         -0.001887   
4         -0.002726          0.002012          0.000543          0.001945   

   disease2_svd_110  disease2_svd_111  disease2_svd_112  disease2_svd_113  \
0         -0.005579         -0.001987          0.037768          0.012893   
1         -0.003030         -0.009093         -0.002076         -0.004467   
2          0.000060          0.001320         -0.000544         -0.000907   
3         -0.005995          0.003522          0.002315         -0.002299   
4          0.005084          0.001443          0.000259         -0.000784   

   disease2_svd_114  disease2_svd_115  disease2_svd_116  disease2_svd_117  \
0          0.002925          0.044773         -0.038541          0.005572   
1          0.007585          0.001704         -0.000898         -0.000604   
2          0.003609          0.001488         -0.000267         -0.002821   
3          0.004152         -0.007743          0.002656         -0.005594   
4          0.001073         -0.002402          0.005187          0.002465   

   disease2_svd_118  disease2_svd_119  disease2_svd_120  disease2_svd_121  \
0          0.015253          0.031836         -0.001107          0.059203   
1         -0.002589          0.007437          0.006040          0.009314   
2          0.000381         -0.003625          0.001080         -0.003746   
3         -0.001302          0.003646         -0.001710          0.006324   
4         -0.000312         -0.000665          0.002359          0.003525   

   disease2_svd_122  disease2_svd_123  disease2_svd_124  disease2_svd_125  \
0          0.009907         -0.044329          0.045791         -0.019859   
1          0.007324         -0.008239         -0.007265         -0.007121   
2         -0.000740          0.004468          0.000185          0.005591   
3          0.006646         -0.006136          0.003705          0.010991   
4          0.000040          0.003171         -0.006081         -0.004884   

   disease2_svd_126  disease2_svd_127  disease3_svd_0  disease3_svd_1  \
0         -0.008714         -0.057113        1.081144       -0.096631   
1         -0.002937         -0.000852        1.817120       -1.784037   
2         -0.001899          0.001580        1.189615       -0.109329   
3         -0.006933          0.001896        1.070765       -0.808722   
4          0.008354         -0.002090        1.286808       -0.267558   

   disease3_svd_2  disease3_svd_3  disease3_svd_4  disease3_svd_5  \
0        0.610973        0.214094        0.285724        0.037680   
1       -0.973115       -0.322312        0.991550        2.330509   
2        0.002665        0.190674        0.706729       -0.526051   
3       -0.295265       -0.377572        0.224404        0.624164   
4        0.293177        0.179919        0.753527       -0.548435   

   disease3_svd_6  disease3_svd_7  disease3_svd_8  disease3_svd_9  \
0        2.024824        0.396048       -0.701736       -0.903993   
1       -0.176316       -0.130993       -0.397610       -0.210186   
2        0.151012        1.535668        1.386908       -0.136352   
3       -0.171772       -0.033262       -0.001275       -0.288270   
4       -0.262182        0.455970        0.503655       -0.740368   

   disease3_svd_10  disease3_svd_11  disease3_svd_12  disease3_svd_13  \
0        -0.163829        -0.665074        -0.146170         0.292248   
1         0.532973         0.323650         0.015021         0.053810   
2         0.122367        -0.631401         0.126397        -0.276903   
3        -0.386495         0.179418         0.970317        -0.800248   
4        -0.459004        -0.473660         0.816256        -0.538978   

   disease3_svd_14  disease3_svd_15  disease3_svd_16  disease3_svd_17  \
0        -0.264666         0.232114         0.142807         0.018816   
1         0.220851        -0.044089        -0.129121         0.357842   
2         0.329921        -0.058434         0.150027         0.081792   
3        -1.032255         0.141866        -0.130448         0.211681   
4         1.083409         0.272414        -0.283723        -0.921948   

   disease3_svd_18  disease3_svd_19  disease3_svd_20  disease3_svd_21  \
0         0.006140         0.215335         0.123988        -0.007711   
1        -0.118835         0.533157         0.197675         0.033118   
2        -0.109353         0.098505        -0.615293        -0.061401   
3        -0.161183        -0.133450         0.103317        -0.330761   
4         0.089385        -0.305596        -0.141462         0.209232   

   disease3_svd_22  disease3_svd_23  disease3_svd_24  disease3_svd_25  \
0         0.503743         0.082692        -0.192049         0.049991   
1         0.212645         0.058697        -0.138553        -0.074376   
2         0.054187         0.171404         0.067380        -0.178878   
3        -0.286104        -0.109326         0.120395         0.188776   
4        -0.102136         0.361745        -0.073097         0.247010   

   disease3_svd_26  disease3_svd_27  disease3_svd_28  disease3_svd_29  \
0         0.284193        -0.419728        -0.265826         0.219807   
1        -0.076036         0.418851        -0.044005        -0.103922   
2         0.316629         0.142819        -0.221195        -0.169382   
3         0.892057        -0.053633         0.402967         0.386931   
4        -0.215279         0.622676        -0.036221        -0.100733   

   disease3_svd_30  disease3_svd_31  disease3_svd_32  disease3_svd_33  \
0        -0.083213         0.365347         0.014522         0.270022   
1         0.011587        -0.067979        -0.088224        -0.190870   
2        -0.276687         0.346723        -0.050159        -0.171242   
3        -0.284458        -0.034337         0.094869        -0.405306   
4        -0.095383         0.252611         0.112919        -0.032485   

   disease3_svd_34  disease3_svd_35  disease3_svd_36  disease3_svd_37  \
0        -0.100975        -0.027756        -0.005296        -0.384114   
1         0.234372         0.014150         0.295512         0.208233   
2        -0.080506        -0.118671         0.018256         0.047224   
3        -0.019650         0.119014        -0.220812        -0.157350   
4        -0.269291         0.179181        -0.179328        -0.041581   

   disease3_svd_38  disease3_svd_39  disease3_svd_40  disease3_svd_41  \
0        -0.131914        -0.386147         0.037262         0.123429   
1        -0.002893         0.028525         0.142613        -0.235298   
2        -0.304223        -0.152287         0.122938        -0.058284   
3         0.113438         0.337078        -0.105879        -0.191973   
4        -0.208619        -0.143577        -0.258412        -0.121063   

   disease3_svd_42  disease3_svd_43  disease3_svd_44  disease3_svd_45  \
0        -0.193423         0.233849        -0.135330         0.132876   
1         0.071875         0.035765        -0.018080         0.006652   
2        -0.407862        -0.010772        -0.175505         0.132974   
3         0.182164         0.150012        -0.002031         0.214086   
4        -0.410299         0.081461        -0.118664         0.432868   

   disease3_svd_46  disease3_svd_47  disease3_svd_48  disease3_svd_49  \
0        -0.204344         0.048369        -0.094278        -0.219713   
1         0.144174         0.107761         0.102500        -0.028223   
2         0.031009         0.221593        -0.054744        -0.009640   
3        -0.001215         0.217673        -0.046450        -0.045357   
4         0.512245        -0.090577         0.357983        -0.083231   

   disease3_svd_50  disease3_svd_51  disease3_svd_52  disease3_svd_53  \
0        -0.040830        -0.112828        -0.003695        -0.135492   
1        -0.166622        -0.227230         0.059775        -0.054151   
2        -0.070451        -0.264516         0.110601         0.291928   
3         0.213626        -0.012232         0.095100         0.030139   
4         0.062759         0.106986         0.043856        -0.294729   

   disease3_svd_54  disease3_svd_55  disease3_svd_56  disease3_svd_57  \
0         0.027470        -0.069589        -0.110494         0.046717   
1         0.143829         0.048532         0.072578        -0.095288   
2         0.102618        -0.166557        -0.021385         0.064398   
3         0.068430        -0.192951        -0.114827         0.035296   
4        -0.021793         0.070910        -0.007633        -0.070904   

   disease3_svd_58  disease3_svd_59  disease3_svd_60  disease3_svd_61  \
0        -0.214439         0.046134         0.134354        -0.104612   
1        -0.048502         0.015662         0.030757        -0.050883   
2         0.245133        -0.163323        -0.205366        -0.078624   
3        -0.216153         0.158659         0.111714        -0.154277   
4         0.097167         0.162714         0.052339         0.102275   

   disease3_svd_62  disease3_svd_63  disease3_svd_64  disease3_svd_65  \
0        -0.104119        -0.080847         0.155709         0.017000   
1         0.147684         0.008403        -0.135227        -0.081102   
2        -0.113051        -0.086653         0.057236         0.089719   
3        -0.135024         0.234255        -0.090858         0.091808   
4         0.007705        -0.093869        -0.008447         0.046357   

   disease3_svd_66  disease3_svd_67  disease3_svd_68  disease3_svd_69  \
0        -0.169362         0.020168         0.120298         0.094487   
1        -0.040909        -0.055877         0.008944         0.042602   
2         0.022555         0.033048         0.041558        -0.154484   
3         0.030877        -0.000725        -0.186567        -0.036827   
4         0.154401        -0.124018        -0.049133         0.308927   

   disease3_svd_70  disease3_svd_71  disease3_svd_72  disease3_svd_73  \
0        -0.117866         0.041941        -0.236982        -0.036641   
1        -0.086106        -0.070377        -0.061552         0.005882   
2        -0.283011        -0.139989        -0.030849        -0.023703   
3        -0.024478         0.017350        -0.110065        -0.012707   
4        -0.101389         0.107464         0.126912        -0.087374   

   disease3_svd_74  disease3_svd_75  disease3_svd_76  disease3_svd_77  \
0         0.017555         0.030866         0.045257         0.070255   
1        -0.013598         0.051109        -0.037114         0.007101   
2        -0.195976         0.047442         0.177886        -0.031600   
3        -0.191022         0.007126        -0.027630         0.049433   
4         0.120835        -0.130838        -0.116480        -0.070292   

   disease3_svd_78  disease3_svd_79  disease3_svd_80  disease3_svd_81  \
0        -0.035509         0.031680        -0.041112        -0.003302   
1        -0.044109         0.004390         0.032941        -0.026301   
2        -0.045078         0.172449        -0.196692        -0.226955   
3         0.232110        -0.107700         0.023428        -0.015442   
4        -0.049393         0.028696         0.104959         0.181812   

   disease3_svd_82  disease3_svd_83  disease3_svd_84  disease3_svd_85  \
0        -0.026433         0.150842        -0.117318        -0.081397   
1        -0.014711         0.021407         0.017150         0.007859   
2        -0.091421         0.116724         0.075902         0.198356   
3        -0.073996        -0.168445        -0.069636         0.062691   
4         0.097010        -0.075481         0.084535        -0.122547   

   disease3_svd_86  disease3_svd_87  disease3_svd_88  disease3_svd_89  \
0         0.013877        -0.030950         0.035688        -0.022059   
1        -0.012711        -0.081762         0.013885        -0.030356   
2         0.069463        -0.098914        -0.074465         0.018325   
3         0.074576         0.089530        -0.082161        -0.074518   
4         0.046716         0.049885        -0.094828         0.062870   

   disease3_svd_90  disease3_svd_91  disease3_svd_92  disease3_svd_93  \
0        -0.015251        -0.046003        -0.003584         0.058973   
1        -0.024276        -0.090971         0.031763        -0.072141   
2         0.013663         0.044086         0.006720        -0.092438   
3        -0.042437         0.031088        -0.155015         0.019656   
4        -0.062986         0.030545         0.001237        -0.047724   

   disease3_svd_94  disease3_svd_95  disease3_svd_96  disease3_svd_97  \
0         0.116162        -0.102288        -0.026451        -0.065339   
1         0.062488         0.036716        -0.080577        -0.054123   
2         0.106865         0.042334        -0.106831         0.047141   
3         0.039321        -0.055407        -0.063896        -0.093685   
4        -0.022991         0.004514         0.055843         0.048817   

   disease3_svd_98  disease3_svd_99  disease3_svd_100  disease3_svd_101  \
0        -0.016272        -0.020509          0.050898         -0.088068   
1         0.011628        -0.033164          0.075565          0.054723   
2        -0.052669         0.032439         -0.020543         -0.067151   
3         0.226617         0.113530         -0.045031         -0.174211   
4         0.044805         0.058769         -0.070773          0.088568   

   disease3_svd_102  disease3_svd_103  disease3_svd_104  disease3_svd_105  \
0          0.030054         -0.022857          0.045037         -0.100831   
1          0.017667          0.054461          0.015337         -0.044796   
2          0.024235         -0.023867         -0.022965          0.079472   
3         -0.128222         -0.114841         -0.031775          0.003285   
4          0.020527         -0.016702          0.049144         -0.057848   

   disease3_svd_106  disease3_svd_107  disease3_svd_108  disease3_svd_109  \
0          0.004140          0.012740         -0.070383          0.056177   
1         -0.028650         -0.086811         -0.008269          0.086882   
2         -0.012705          0.022978          0.045083         -0.016602   
3         -0.002169         -0.108374          0.002132          0.015701   
4         -0.151351         -0.153255          0.007800          0.052151   

   disease3_svd_110  disease3_svd_111  disease3_svd_112  disease3_svd_113  \
0         -0.029545         -0.034183          0.027649          0.003119   
1         -0.057133          0.054998         -0.053585         -0.027943   
2          0.069385         -0.034710         -0.012632         -0.055165   
3         -0.025789          0.049046         -0.074700          0.020771   
4          0.053366          0.039268         -0.006772          0.077348   

   disease3_svd_114  disease3_svd_115  disease3_svd_116  disease3_svd_117  \
0          0.028489         -0.058005          0.060475          0.159239   
1         -0.031830          0.060304          0.009329         -0.003838   
2         -0.023180         -0.105940         -0.096701         -0.139067   
3         -0.000206          0.066936          0.028114         -0.094354   
4         -0.028753         -0.118866          0.028853         -0.078241   

   disease3_svd_118  disease3_svd_119  disease3_svd_120  disease3_svd_121  \
0          0.003554         -0.050520         -0.049823         -0.017363   
1         -0.004057          0.011732         -0.012960         -0.005264   
2          0.082889         -0.008238         -0.058866          0.072690   
3         -0.114083          0.041070         -0.060834          0.031545   
4         -0.035130         -0.033633         -0.015799         -0.042921   

   disease3_svd_122  disease3_svd_123  disease3_svd_124  disease3_svd_125  \
0         -0.116130          0.085801          0.072854          0.120381   
1          0.024481         -0.021813         -0.020103          0.079306   
2         -0.040983          0.001735         -0.031011          0.012370   
3          0.020605          0.045850          0.060787         -0.054691   
4          0.035031          0.071032         -0.097231          0.081445   

   disease3_svd_126  disease3_svd_127  
0          0.033087         -0.025249  
1          0.056902         -0.012589  
2         -0.016576          0.062942  
3         -0.081137         -0.041880  
4         -0.014732          0.010713
登录后复制
               
In [ ]
<br/>
登录后复制
   

3.2.3 交叉特征

这里按特征重要性选取靠前的部分特征进行交叉

In [21]
topn = ['N_33', 'N_198', 'N_74','N_188','N_82','N_42','N_111','disease','food']for i in range(len(topn)):    for j in range(i + 1, len(topn)):
        data[f'{topn[i]}+{topn[j]}'] = data[topn[i]] + data[topn[j]]
        data[f'{topn[i]}-{topn[j]}'] = data[topn[i]] - data[topn[j]]
        data[f'{topn[i]}*{topn[j]}'] = data[topn[i]] * data[topn[j]]
        data[f'{topn[i]}/{topn[j]}'] = data[topn[i]] / (data[topn[j]]+1e-5)
登录后复制
   
In [22]
drop_cols = ['disease_id', 'food_id', 'related']
登录后复制
   

3.2.3 特征筛选

去除掉只有单一取值的特征

In [23]
for f in data.columns:    if data[f].nunique() < 2:
        drop_cols.append(f)
登录后复制
   
In [24]
test_df = data[data["related"].isnull() == True].copy().reset_index(drop=True)
train_df = data[~data["related"].isnull() == True].copy().reset_index(drop=True)
登录后复制
   
In [25]
feature_name = [f for f in train_df.columns if f not in drop_cols]
X_train = train_df[feature_name].reset_index(drop=True)
X_test = test_df[feature_name].reset_index(drop=True)
y = train_df['related'].reset_index(drop=True)print(len(feature_name))print(feature_name)
登录后复制
       
548
['food', 'disease', 'disease_related_mean', 'N_198', 'N_33', 'N_211', 'N_82', 'N_101', 'N_42', 'N_111', 'N_165', 'N_177', 'N_146', 'N_17', 'N_113', 'N_106', 'N_14', 'N_74', 'N_209', 'N_188', 'disease1_svd_0', 'disease1_svd_1', 'disease1_svd_2', 'disease1_svd_3', 'disease1_svd_4', 'disease1_svd_5', 'disease1_svd_6', 'disease1_svd_7', 'disease1_svd_8', 'disease1_svd_9', 'disease1_svd_10', 'disease1_svd_11', 'disease1_svd_12', 'disease1_svd_13', 'disease1_svd_14', 'disease1_svd_15', 'disease1_svd_16', 'disease1_svd_17', 'disease1_svd_18', 'disease1_svd_19', 'disease1_svd_20', 'disease1_svd_21', 'disease1_svd_22', 'disease1_svd_23', 'disease1_svd_24', 'disease1_svd_25', 'disease1_svd_26', 'disease1_svd_27', 'disease1_svd_28', 'disease1_svd_29', 'disease1_svd_30', 'disease1_svd_31', 'disease1_svd_32', 'disease1_svd_33', 'disease1_svd_34', 'disease1_svd_35', 'disease1_svd_36', 'disease1_svd_37', 'disease1_svd_38', 'disease1_svd_39', 'disease1_svd_40', 'disease1_svd_41', 'disease1_svd_42', 'd
登录后复制
       
In [26]
print(test_df.shape)
登录后复制
       
(47212, 551)
登录后复制
       

3.2.3 模型训练

本次仅使用lightgbm模型来训练。

In [27]
train_pred = {}
test_pred = {}
登录后复制
   
In [ ]
seeds = [2]
num_model_seed = 1oof = np.zeros(X_train.shape[0])
prediction = np.zeros(X_test.shape[0])
feat_imp_df = pd.DataFrame({'feats': feature_name, 'imp': 0})
parameters = {    'learning_rate': 0.05,    'boosting_type': 'gbdt',    'objective': 'binary',    'metric': 'auc',    'num_leaves': 63,    'feature_fraction': 0.8,    'bagging_fraction': 0.8,    'bagging_freq': 5,    'seed': 2022,    'bagging_seed': 1,    'feature_fraction_seed': 7,    'min_data_in_leaf': 20,    'verbose': -1, 
    'n_jobs':8,
 
   
}
fold = 5for model_seed in range(num_model_seed):    print(seeds[model_seed],"--------------------------------------------------------------------------------------------")
    oof_cat = np.zeros(X_train.shape[0])
    prediction_cat = np.zeros(X_test.shape[0])
    skf = StratifiedKFold(n_splits=fold, random_state=seeds[model_seed], shuffle=True)    for index, (train_index, test_index) in enumerate(skf.split(X_train, y)):
        train_x, test_x, train_y, test_y = X_train[feature_name].iloc[train_index], X_train[feature_name].iloc[test_index], y.iloc[train_index], y.iloc[test_index]
        dtrain = lgb.Dataset(train_x, label=train_y)
        dval = lgb.Dataset(test_x, label=test_y)
        lgb_model = lgb.train(
            parameters,
            dtrain,
            num_boost_round=10000,
            valid_sets=[dval],
            early_stopping_rounds=100,
            verbose_eval=100, )
        oof_cat[test_index] += lgb_model.predict(test_x,num_iteration=lgb_model.best_iteration)
        prediction_cat += lgb_model.predict(X_test,num_iteration=lgb_model.best_iteration) / fold
        feat_imp_df['imp'] += lgb_model.feature_importance()        del train_x        del test_x        del train_y        del test_y        del lgb_model
    oof += oof_cat / num_model_seed
    prediction += prediction_cat / num_model_seed
gc.collect()
登录后复制
   

食品与疾病关系预测算法赛道-baseline - php中文网        

3.2.4 结果可视化

In [34]
train_pred['lgb'] = oof
test_pred['lgb'] = prediction
登录后复制
   
In [35]
print("lgb train auc: ", roc_auc_score(y, train_pred['lgb']))
登录后复制
       
lgb train auc:  0.9778226537246766
登录后复制
       
In [36]
scores = []; thresholds = []
best_score = 0; best_threshold = 0for threshold in np.arange(0.1,0.9,0.01):    print(f'{threshold:.02f}, ',end='')
    preds = (train_pred['lgb'].reshape((-1)) > threshold).astype('int')
    m = f1_score(y.values.reshape((-1)), preds, average='binary')   
    scores.append(m)
    thresholds.append(threshold)    if m>best_score:
        best_score = m
        best_threshold = threshold
登录后复制
       
0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.70, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89,
登录后复制
       
In [37]
import matplotlib.pyplot as plt# PLOT THRESHOLD VS. F1_SCOREplt.figure(figsize=(20,5))
plt.plot(thresholds,scores,'-o',color='blue')
plt.scatter([best_threshold], [best_score], color='blue', s=300, alpha=1)
plt.xlabel('Threshold',size=14)
plt.ylabel('Validation F1 Score',size=14)
plt.title(f'Threshold vs. F1_Score with Best F1_Score = {best_score:.3f} at Best Threshold = {best_threshold:.3}',size=18)
plt.show()
登录后复制
       
<Figure size 2000x500 with 1 Axes>
登录后复制
               
In [38]
auc = roc_auc_score(y, train_pred['lgb'])
f1 = best_scoreprint((auc + f1) / 2)
登录后复制
       
0.8939347040505519
登录后复制
       

3.2.5 生成提交结果

控制1的个数为4100个左右,最终结果:

In [39]
# label=[1 if x >= 0.265+0.235 else 0 for x in prediction+0.235]# np.sum(label)label=[1 if x >= 0.26+0.24 else 0 for x in prediction+0.25]
np.sum(label)
登录后复制
       
4032
登录后复制
               
In [40]
preliminary_a_submit_sample['related_prob'] = prediction+0.25
登录后复制
   
In [41]
preliminary_a_submit_sample.to_csv('submit.csv', index=False)
登录后复制
   

四、项目总结

4.1 提交结果

食品与疾病关系预测算法赛道-baseline - php中文网        

以上就是食品与疾病关系预测算法赛道-baseline的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号