统计数据分析类体育竞技的自学方向
截止2022年,我国高血压病人近1.3亿。我国高血压得病其原因受生活方式、人口老龄化、城镇化、家族企业遗传基因等多种不同因素影响。同时,高血压病人趋于平民化。高血压可导致心脑血管、肝脏、心律不整并发症的出现。因此,精确确诊出罹患高血压子代具备非常重要的尿道感染。高血压晚期遗传基因信用风险预估将有利于防治高血压的出现。根据《我国2型高血压防治手册(2017年版)》,高血压的确诊国际标准是具备众所周知高血压病症(烦渴多饮、多尿、多食、未明其原因的运动量下降)且乱数腹腔血液乳酸≥11.1mmol/L或暴饮暴食腹腔血液乳酸≥7.0mmol/L或静脉注射乳酸耐量测试(OGTT)损耗后2h血液乳酸≥11.1mmol/L。目的:需要通过体能训练统计数据集构筑高血压遗传基因信用风险预估模型,然后推断出测试统计数据分散子代与否罹患高血压,和我们一起协助高血压病人化解这“浪漫的苦恼”。比赛门牌号:http://challenge.xfyun.cn/topic/info?type=diabetes&ch=ds22-dw-gzh01源码:https://github.com/datawhalechina/competition-baseline数据情况:统计数据由体能训练集和测试集共同组成,详细情况如下表所示:体能训练集:共计5070条统计数据,用作构筑您的预估模型测试集:共计1000条统计数据,用作校正预估模型的操控性。其中体能训练集统计报文所含9个表头:异性恋、长大年数、运动量指数、高血压Satna、收缩压、静脉注射耐糖量测试、生长激素释放出来试验、肱三头肌展毛宽度、罹患高血压标记(统计数据条码)。埃皮纳勒区统计数据由体能训练集和测试集共同组成,详细情况如下表所示:应试者选用二进行分类任务中的F1-score指标进行评价,F1-score越大说明预估模型操控性越好,F1-score的定义如下表所示:
其中:
Baseline
导入统计数据
import pandas as pdimport lightgbmimport lightgbm统计数据预处理
data1=pd.read_csv(比赛体能训练集.csv,encoding=gbk)data2=pd.read_csv(比赛测试集.csv,encoding=gbk)#label标记为-1data2[罹患高血压标记]=-1#体能训练集和测试机合并data=pd.concat([data1,data2],axis=0,ignore_index=True)#特征工程”””人体的成人运动量指数正常值是在18.5-24之间低于18.5是运动量指数过轻在24-27之间是运动量超重27以上考虑是肥胖高于32了就是非常的肥胖。”””def BMI(a):if a<18.5:return0elif 18.5<=a<=24:return1elif 24<a<=27:return2elif 27<a<=32:return3else:return4data[BMI]=data[运动量指数].apply(BMI)data[长大年数]=2022-data[长大年数] #换成年龄#高血压Satna”””无记录叔叔或者姑姑有一方罹患高血压/叔叔或姑姑有一方罹患高血压父母有一方罹患高血压”””def FHOD(a):if a==无记录:return0elif a==叔叔或者姑姑有一方罹患高血压 or a==叔叔或姑姑有一方罹患高血压:return1else:return2data[高血压Satna]=data[高血压Satna].apply(FHOD)data[收缩压]=data[收缩压].fillna(-1)”””收缩压范围为60-90″””def DBP(a):if a<60:return0elif 60<=a<=90:return1elif a>90:return2else:return adata[DBP]=data[收缩压].apply(DBP)data体能训练统计数据/测试统计数据准备
train=data[data[患有高血压标记] !=-1]test=data[data[罹患高血压标记] ==-1]train_label=train[罹患高血压标记]train=train.drop([编号,罹患高血压标记],axis=1)test=test.drop([编号,罹患高血压标记],axis=1)构筑模型def select_by_lgb(train_data,train_label,test_data,random_state=2022,metric=auc,num_round=300):clf=lightgbmtrain_matrix=clf.Dataset(train_data,label=train_label)params={boosting_type: gbdt,objective: binary,learning_rate: 0.1,metric: metric,seed: 2020,nthread:-1 }model=clf.train(params,train_matrix,num_round)pre_y=model.predict(test_data)return pre_y模型校正
test_data=select_by_lgb(train,train_label,test)pre_y=pd.DataFrame(test_data)pre_y[label]=pre_y[0].apply(lambda x:1 if x>0.5 else 0)result=pd.read_csv(提交示例.csv)result[label]=pre_y[label]result.to_csv(baseline.csv,index=False)建议
本题中的模型部分用了相当简单的方法,lightgbm算法中没有进行交叉统计数据校正,同时也仅仅使用了默认参数,因此选手可以在这个Baseline的基础上进行进一步的参数优化于模型融合,同时注意到本公开的算法中特征工程构筑进行了一部分的演示,选手可以根据高血压的相关医学特点进行对特征进一步挖掘~以上是科大讯飞的体育竞技事例——————————————–
以下根据临床实际多特征因素进行机器自学预估
统计数据说明Data description –本事例统计数据分散分为体能训练集和测试集,部分特征名已经做脱敏处理。体能训练集包含年龄、异性恋、各项体检指标以及预估目标血糖值;测试集相对于体能训练集则缺少了对应的血糖值,也就是所期望预估到的值;文件共包含42个特征,包含数值型、字符型、日期型等众多统计数据类型,如下表所示所示:返回:
解读:可以看到,许多表头有缺失。
3 统计数据预处理
第三步 –3.1 将id列删除,并将异性恋转化为10任务:将id列删除,并将异性恋转化为10# 将id列丢掉train = train.drop([id], axis=1)# 将异性恋男女转化为10train[异性恋] = train[异性恋].map({男:1, 女:0})# train[异性恋] = np.where(train[异性恋]==”女”, 0, 1)3.2 根据血糖状态划分人群状态:任务:根据血糖,将人群分为以下三列:① 正常血糖(血糖<6.1 mmol/L);② 高血压前期(6.1≤血糖<7.0 mmol/L);③ 高血压(血糖≥7.0 mmol/L);# ① 正常血糖(血糖<6.1 mmol/L);# ② 高血压前期(6.1≤血糖<7.0 mmol/L);# ③ 高血压(血糖≥7.0 mmol/L);data1=train.loc[train[血糖] < 6.1].copy()data1[“状态”] = “正常血糖”data2=train.loc[(train[血糖] >= 6.1) & (train[血糖] < 7.0)].copy()data2[“状态”] = “高血压前期”data3=train.loc[train[血糖] >= 7.0].copy()data3[“状态”] = “高血压”df = pd.concat([data1, data2,data3])# 查看目标人群的人数df[“状态”].value_counts()返回:正常血糖 5530;高血压前期 567;高血压 545;3.3 探索血糖状态与年龄异性恋的关系任务:绘制柱状图和箱线图分析异性恋与血糖状态、年龄与血糖的关系# 绘制柱状图和箱线图分析异性恋与血糖、年龄与血糖的关系fig=plt.figure(figsize=(14, 14))# 设置画布大小plt.rcParams[font.sans-serif] = SimHei #设置中文显示plt.rcParams[axes.unicode_minus] = Falsefig.add_subplot(1, 2, 1)sns.countplot(x=状态, data=df, hue=异性恋, palette=rainbow)fig.add_subplot(1, 2, 2)sns.boxplot(x=状态, y=年龄, data=df)返回:5 建立模型
第一步 –本次建模采取交叉校正的方式进行建模。下面简要回归下交叉校正。5.1 导入库和统计数据# 导入构筑模型所需的库from sklearn.model_selection import KFold # K折交叉校正函数import lightgbm as lgb# LightGBM是一个梯度Boosting框架,使用基于决策树的自学算法from sklearn.model_selection import train_test_split# 用作统计数据分割# 读取处理后的统计数据train_feat = pd.read_csv(train_feat.csv, encoding = gbk)# test_feat = pd.read_csv(../tmp/test_feat.csv, encoding = gbk)5.2 统计数据分割# 在这里我们从train_feat中进行统计数据分割# X提取变量特征;Y提取目标变量X = train_feat.drop(血糖, axis=1)y = train_feat[血糖]X_train, X_test, y_train, y_test = train_test_split(train_feat.drop(血糖, axis=1), train_feat[血糖], test_size = .2, random_state=10)# 合并train和testtrain_feat = pd.concat([X_train,y_train],axis=1)test_feat = pd.concat([X_test,y_test],axis=1)5.3 交叉校正并建模predictors = [f for f in train_feat.columns if f not in [血糖]] # 提取列名print(开始体能训练…)# 体能训练模型并预估def lgb_train(train_feat,test_feat): print(开始CV 5折体能训练…) train_preds = np.zeros(train_feat.shape[0])test_preds = np.zeros((test_feat.shape[0],5)) kf = KFold(n_splits=5, shuffle=True, random_state=500)# K折交叉校正for i ,(train_index, test_index) in enumerate(kf.split(train_feat)):
print(第{}次体能训练.format(i))
train_feat1 = train_feat.iloc[train_index]
train_feat2 = train_feat.iloc[test_index]
model_lgb = lgb.LGBMRegressor(objective=regression, num_leaves=8, learning_rate=0.03, n_estimators=400,max_bin=30, bagging_fraction=0.8,bagging_freq=10, feature_fraction=0.5,
feature_fraction_seed=10, bagging_seed=10,
min_data_in_leaf=80, nthread=8,
min_sum_hessian_in_leaf=0.2)
gbm = model_lgb.fit(train_feat1[predictors].values, train_feat1[血糖].values) train_preds[test_index] += gbm.predict(train_feat2[predictors])
test_preds[:,i] = gbm.predict(test_feat[predictors])
return train_preds, test_predstrain_preds,test_preds = lgb_train(train_feat, test_feat)
返回:基于视频中的多模态情感识别进行语境动力学研究
基于多模态深度自学在多重心理生理学信号和视频中的情感识别方法
重症监护医学信息统计数据库(电子病历统计数据集)MIMIC-III介绍
可用作做机器自学的开放医学影像统计数据集(附门牌号)
深度自学VS机器自学的区别
医疗健康系统统计数据资产简要介绍及国内目前常见应用
很多人会在医院留下回忆
很少人会在医院停下驻足
——行业所见所学,愿与你分享
行走在白大褂里的董小姐