任务二 kaggle糖尿病检测

目录

一、数据预处理

1.转换出Outcome这个字段

 2.describe()

3.查找缺失值

4.缺失值填补

二、特征分析

1.热力图分析Outcome与其他数据的相关性

2.探究preg和患病率的关系

3.探究plas与患病率的关系

 4.探究pres与患病率的关系

5.探究skin与患病率的关系

6.探究insu与患病率的关系

7.探究mass与患病率的关系

8.探究pedi和患病率的关系

9.探究age与患病率的关系

三、建模以及预测


一、数据预处理

1.转换出Outcome这个字段

把class中的b'tested_positive'和b'tested_negative'转换为Outcome中的1和0

并且drop掉class这个字段

diabetes_data['OutCome'] = diabetes_data['class'].map(lambda s: 1 if s == "b'tested_positive'" else 0)
diabetes_data.drop(labels = ["class"], axis = 1, inplace = True)

​​​​​​​Python之Lambda表达式和if not...else用法_全栈测试开发日记的博客-优快云博客

 2.describe()

count      告诉我们特征中非空行的数量。
mean     告诉我们该特征的平均值。
std         告诉我们该特征的标准偏差值。
min        告诉我们该特征的最小值。
25%、50% 和 75% 是每个特征的百分位数/四分位数。 这个四分位信息有助于我们检测异常值。
max       告诉我们该特征的最大值。

print(diabetes_data.describe())

print(diabetes_data.describe().T)

 

3.查找缺失值

以下列或变量的零值无效:葡萄糖、血压、皮肤厚度、胰岛素、体重指数

把他们都改成NaN类型

diabetes_data_copy = diabetes_data.copy(deep = True)
diabetes_data_copy[['plas','pres','skin','insu','mass']] = diabetes_data_copy[['plas','pres','skin','insu','mass']].replace(0,np.NaN)

## showing the count of Nans
print(diabetes_data_copy.isnull().sum())

4.缺失值填补

mean_byOutcome('plas')
diabetes_data_copy.loc[(diabetes_data_copy['Outcome'] == 0) & (diabetes_data_copy['plas'].isnull()), 'plas'] = mean_byOutcome('plas')['plas'][0]
diabetes_data_copy.loc[(diabetes_data_copy['Outcome'] == 1) & (diabetes_data_copy['plas'].isnull()), 'plas'] = mean_byOutcome('plas')['plas'][1]

二、特征分析

1.热力图分析Outcome与其他数据的相关性

 从图中可以看出患病率跟plas(口服葡萄糖耐量试验中 2 小时的血浆葡萄糖浓度)相关性很大

跟pres(舒张压 )和skin(三头肌皮褶厚度)的相关性较小

2.探究preg和患病率的关系

preg没有缺失值

 

 

可以看出当怀孕次数大于7次甚至更多时,患病的概率比较高。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值