该问题为已知bvp、hr、ibi等数据,预测患者高糖次数,可视为回归问题或分类问题,回归问题即预测血糖值,然后统计血糖大于140的次数
分类问题即预测是否高糖(二分类),本次首先做回归问题,过程记录如下。
1.bvp特征工程
bvp数据频率为64HZ,即每秒64个数据

1.1 缺失值查看
首先查看缺失情况,循环遍历16个患者的bvp数据和血糖数据,查看bvp数据分布时间和血糖数据分布时间
import pandas as pd
import os
data_dir = '/kaggle/input/diabetes-data/data/'
bvp_file_template = 'BVP_{:03d}.csv'
dex_file_template = 'Dexcom_{:03d}.csv'
result_dict = {}
for i in range(2, 17):
bvp_file_name = bvp_file_template.format(i)
bvp_filepath = os.path.join(data_dir, '{:03}'.format(i), bvp_file_name)
bvp_dates = pd.read_csv(bvp_filepath)['datetime'].agg(['min', 'max'])
dex_file_name = dex_file_template.format(i)
dex_filepath = os.path.join(data_dir, '{:03}'.format(i), dex_file_name)
dex_dates = pd.read_csv(dex_filepath).dropna(axis=0, subset=['Timestamp (YYYY-MM-DDThh:mm:ss)'])['Timestamp (YYYY-MM-DDThh:mm:ss)'].agg(['min', 'max'])
result_dict[i] = {'BVP_start': bvp_dates['min'], 'BVP_end': bvp_dates['max'], 'Dexcom_start': dex_dates['min'], 'Dexcom_end': dex_dates['max']}
result_df = pd.DataFrame.from_dict(result_dict, orient='index')
1.2 统计特征提取