电子病历、人工智能、物联网设备、5G技术的快速演化,与大规模的数据资源,成为了数字化医疗的全新支撑。 对于医药公司、医疗机构、科技公司,如何整合全新的技术能力、人才资源、数据资源,为数字化医疗的创新提供更强的动力,成为了共同关切的重要话题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

本次数字医疗算法应用创新大赛是对于这一重要话题的主动探索,旨在最大化利用当前高速发展的算法技术与数据资源,培养数字化医疗人才、激励数字化医疗创新。大赛双赛道分别为食品与疾病关系预测算法赛道和生物共融与数字疗法应用赛道。
本赛道将提供脱敏后的食物与疾病特征,参赛团队根据主办方提供数据,在高度稀疏数据的场景中,进一步挖掘、融合特征并设计模型,以预测食物与疾病的关系。初赛阶段为二分类问题,分类标签分别为 0(无关)、1(存在正面或负面的影响)。
本次算法赛将提供超过 23.5W 的食物、疾病对应关系及其量化得分,其中食物特征超过 200 个,疾病特征由 3 种不同的方式抽取,累积超过 4000 个特征信息。初赛为 0、1 二分类预测,提供食物、疾病特征,与食物疾病的关系标签。
复赛阶段同时评估 0、1 二分类与相关性评级,在原训练集中增加食物疾病相关性评级的标签数据。
训练集包括疾病特征数据、食物特征数据(共计 348 种食物)、以及食物疾病关系,用于模型训练:
初赛测试集分两个阶段(A/B 榜),不提供预测结果,其中:
preliminary_a_food.csv preliminary_a_submit_sample.csv
preliminary_b_food.csvpreliminary_b_submit_sample.csv
累计包含 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 | food_id | 字符串 | 食物 id | food_0 | 
| 2~213 | N_x | 浮点型 | 212 种食物特征,字段名称从 N_0 ~N_211 | 0.123 | 
| 序列 | 字段名称 | 格式 | 解释说明 | 示例 | 
|---|---|---|---|---|
| 1 | food_id | 字符串 | 食物 id | food_0 | 
| 2 | disease_id | 字符串 | 疾病 id | disease_0 | 
| 3 | related | 整型 | 食物与疾病是否相关:0(无关)、1(存在正面或负面的影响) | 0 | 
        
| 序列 | 字段名称 | 格式 | 解释说明 | 示例 | 
|---|---|---|---|---|
| 1 | food_id | 字符串 | 食物 id | food_0 | 
| 2 | disease_id | 字符串 | 疾病 id | disease_0 | 
| 3 | related_prob | 浮点型 | 食品与疾病预测为 1 的概率若 related_prob >= 0.5,评审计算 f1 得分时判定为类别 1 | 0.1 | 
比赛传送门
LightGBM(LightGBM: Gradient Boosting of Big Data Applications)是一种基于梯度提升树模型(Gradient Boosting Decision Tree)的轻量级机器学习算法,用于解决大规模数据集的分类、回归和聚类问题。它的核心思想是利用梯度下降来优化模型参数,从而提高模型的预测准确率。LightGBM的主要特点包括以下几个方面:
!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
!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;
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')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)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的方式。
data['food'] = data['food_id'].apply(lambda x : int(x.split('_')[1]))
data['disease'] = data['disease_id'].apply(lambda x : int(x.split('_')[1]))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# 查看数据缺失情况pd.set_option('display.max_rows', None)
((food.isnull().sum())/food.shape[0]).sort_values(ascending=False).map(lambda x:"{:.2%}".format(x))
        
#只保留缺失率少于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由于本题只有两个离散变量food_id 和disease_id ,而测试集中都是新的foodid
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]
使用TruncatedSVD 的方法,对疾病特征进行降维,维度均为128
f_col = [col for col in disease_feature1.columns if 'F' in col]
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])]
disease_feature1 = disease_feature1[['disease_id']]for col in decom_feas:
    disease_feature1[col] = decom_feas[col]f_col = [col for col in disease_feature2.columns if 'F' in col]
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])]
disease_feature2 = disease_feature2[['disease_id']]for col in decom_feas:
    disease_feature2[col] = decom_feas[col]f_col = [col for col in disease_feature3.columns if 'F' in col]
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])]
disease_feature3 = disease_feature3[['disease_id']]for col in decom_feas:
    disease_feature3[col] = decom_feas[col]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<br/>
这里按特征重要性选取靠前的部分特征进行交叉
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)drop_cols = ['disease_id', 'food_id', 'related']
去除掉只有单一取值的特征
for f in data.columns:    if data[f].nunique() < 2:
        drop_cols.append(f)test_df = data[data["related"].isnull() == True].copy().reset_index(drop=True) train_df = data[~data["related"].isnull() == True].copy().reset_index(drop=True)
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
print(test_df.shape)
(47212, 551)
本次仅使用lightgbm模型来训练。
train_pred = {}
test_pred = {}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()
        
train_pred['lgb'] = oof test_pred['lgb'] = prediction
print("lgb train auc: ", roc_auc_score(y, train_pred['lgb']))lgb train auc: 0.9778226537246766
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 = threshold0.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,
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>
auc = roc_auc_score(y, train_pred['lgb']) f1 = best_scoreprint((auc + f1) / 2)
0.8939347040505519
控制1的个数为4100个左右,最终结果:
# 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
preliminary_a_submit_sample['related_prob'] = prediction+0.25
preliminary_a_submit_sample.to_csv('submit.csv', index=False)
        
以上就是食品与疾病关系预测算法赛道-baseline的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号