PimaIndiansdiabetes-数据预处理实验(一)

这篇博客详细介绍了Pima Indians糖尿病数据集,包括数据来源、数据预处理的思考和步骤,如缺失值处理、特征提取、标准化、数据可视化、特征选择、模型构建等,涉及多项式方法、SVM、逻辑回归等机器学习算法。
摘要由CSDN通过智能技术生成

有趣的事,Python永远不会缺席!

链接:https://pan.baidu.com/s/1PyP_r8BMnLLE-2fkKEPqKA
提取码:vztm

一、PimaIndiansdiabetes.csv 数据集介绍

  1、该数据集最初来自国家糖尿病/消化/肾脏疾病研究所。数据集的目标是基于数据集中包含的某些诊断测量来诊断性的预测 患者是否患有糖尿病。
  2、从较大的数据库中选择这些实例有几个约束条件。尤其是,这里的所有患者都是Pima印第安至少21岁的女性。
  3、数据集由多个医学预测变量和一个目标变量组成Outcome。预测变量包括患者的怀孕次数、BMI、胰岛素水平、年龄等。

  4、数据集的内容是皮马人的医疗记录,以及过去5年内是否有糖尿病。所有的数据都是数字,问题是(是否有糖尿病是1或0),是二分类问题。数据有8个属性,1个类别:

  【1】Pregnancies:怀孕次数 
  【2】Glucose:葡萄糖 
  【3】BloodPressure:血压 (mm Hg) 
  【4】SkinThickness:皮层厚度 (mm) 
  【5】Insulin:胰岛素 2小时血清胰岛素(mu U / ml 
  【6】BMI:体重指数 (体重/身高)^2 
  【7】DiabetesPedigreeFunction:糖尿病谱系功能 
  【8】Age:年龄 (岁) 
  【9】Outcome:类标变量 (0或1)

二、数据预处理思考

  1、首先要明确有多少特征,哪些是连续的,哪些是类别的。
  2、检查有没有缺失值,对确实的特征选择恰当方式进行弥补,使数据完整。
  3、对连续的数值型特征进行标准化,使得均值为0,方差为1。
  4、对类别型的特征进行one-hot编码。
  5、将需要转换成类别型数据的连续型数据进行二值化。
  6、为防止过拟合或者其他原因,选择是否要将数据进行正则化。
  7、在对数据进行初探之后发现效果不佳,可以尝试使用多项式方法,寻找非线性的关系。
  8、根据实际问题分析是否需要对特征进行相应的函数转换。

三、数据的读取

1 import pandas as pd  # 数据科学计算工具
2 import numpy as np  # 数值计算工具
3 import matplotlib.pyplot as plt  # 可视化
4 import seaborn as sns  # matplotlib的高级API
5 %matplotlib inline # 在Notebook里面作图/嵌图
6 
7 
8 pima = pd.read_csv('C:\AI\AI_datasets\PimaIndiansdiabetes.csv')
9 pima.head()

 1 pima.describe() # panda的describe描述属性,展示了每一个字段的,【count条目统计,mean平均值,std标准值,min最小值,25%,50%中位数,75%,max最大值】 

 1 pima.groupby('Outcome').size()  #按照是否发病分组,并展示每组的大小 

四、Data Visualization - 数据可视化 

 1 pima.hist(figsize=(16, 14));
 2 #查看每个字段的数据分布;figsize的参数显示的是每个子图的长和宽
 3 # 后面加个分号就不会出现下面的输出
 4 # array([[<matplotlib.axes._subplots.AxesSubplot object at 0x00000235316A7C50>,
 5 #         <matplotlib.axes._subplots.AxesSubplot object at 0x00000235319287B8>,
 6 #         <matplotlib.axes._subplots.AxesSubplot object at 0x0000023531945E48>],
 7 #        [<matplotlib.axes._subplots.AxesSubplot object at 0x0000023531977518>,
 8 #         <matplotlib.axes._subplots.AxesSubplot object at 0x000002353199FBA8>,
 9 #         <matplotlib.axes._subplots.AxesSubplot object at 0x000002353199FBE0>],
10 #        [<matplotlib.axes._subplots.AxesSubplot object at 0x0000023531EA8908>,
11 #         <matplotlib.axes._subplots.AxesSubplot object at 0x0000023531ED1F98>,
12 #         <matplotlib.axes._subplots.AxesSubplot object at 0x0000023531F03668>]],
13 #       dtype=object)

1 sns.pairplot(pima, vars=pima.columns,hue = 'Outcome')
2 
3 # 报错LinAlgError: singular matrix
 1 sns.pairplot(pima, vars=pima.columns[:-1], hue='Outcome')
 2 plt.show()
 3 
 4 # seaborn常用命令
 5 #【1】set_style()是用来设置主题的,Seaborn有5个预设好的主题:darkgrid、whitegrid、dark、white、ticks,默认为darkgrid
 6 #【2】set()通过设置参数可以用来设置背景,调色板等,更加常用
 7 #【3】displot()为hist加强版
 8 #【4】kdeplot()为密度曲线图
 9 #【5】boxplot()为箱图
10 #【6】joinplot()联合分布图
11 #【7】heatmap()热点图
12 #【8】pairplot()多变量图,可以支持各种类型的变量分析,是特征分析很好用的工具
13 # data:必不可少的数据;hue:用一个特征来显示图像上的颜色,类似于打标签;vars:只留几个特征两两比较,否则使用data的全部变量;

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值