1.数据集初识
1.1加载数据集、查看数据集内容
# coding=gbk
import pandas as pd
train_df = pd.read_csv('E:/project/NLP/dataSet/糖尿病遗传风险预测挑战赛公开数据/比赛训练集.csv', encoding='gbk')
test_df = pd.read_csv('E:/project/NLP/dataSet/糖尿病遗传风险预测挑战赛公开数据/比赛测试集.csv', encoding='gbk')
train_df.head(10)
#test_df.head(10)
1.2查看数据集大小及数据类型
print(train_df.shape, test_df.shape)
print(train_df.dtypes, test_df.dtypes)
2.数据分析
2.1 缺失值
#查看哪一列有缺失值
train_df.isnull().any()
#统计空值个数
train_df.isnull().values.sum()
train_df.isnull().sum()
#可以看出只有舒张压有缺失值,其他数据都是完整的。(初步看上去还让人挺高兴)
# 缺失值计算
train_df.isnull().mean(0)
test_df.isnull().mean(0)
#缺失值分析
isnull().mean()函数给出了空值列的占比,训练集 总数据量5070,舒张压空值个数274,得到空值列占比为0.0487。
训练集和测试集空值分布基本差不多,空值占比都不是很高(忍不住又想夸一夸数据集了,真干净哈哈)
2.2 相关性
#相关性计算
train_df.corr()
# 相关性分析
可以看出原始数据集和患有糖尿病标识相关性最高的特征依次是:1. 肱三头肌皮褶厚度 2.体重指数 3.口服耐糖量测试 4.舒张压 5.胰岛素释放实验
其他特征的相关性就比较低了,但是这是数据未做任何处理的情况,比如出生年份,可以转换为年龄(个人猜想效果会变好,后面有待验证)
(这一篇先到这儿,接下来先在原始数据集上使用逻辑回归看下效果,然后一步步进行特征优化,得到更强的模型)