HealthIT.CN.AI培训(1)糖尿病分类
1. 数据集介绍:
名称:Pima Indians Diabetes Data Set
来源:国家糖尿病/消化/肾脏疾病研究所
特点:多变量
实例数量:768
适用于:分类问题
变量:8个医学预测变量和一个目标变量
目标:基于数据集中包含的某些诊断测量来诊断性的预测患者是否患有糖尿病
该数据集最初来自国家糖尿病/消化/肾脏疾病研究所。数据集的目标是基于数据集中包含的某些诊断测量来诊断性的预测 患者是否患有糖尿病。
从较大的数据库中选择这些实例有几个约束条件。尤其是,这里的所有患者都是Pima印第安至少21岁的女性。
数据集由多个医学预测变量和一个目标变量组成Outcome。预测变量包括患者的怀孕次数、BMI、胰岛素水平、年龄等。
【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)
数据预览:
KNN算法:
KNN(k-nearestneighbors)是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN算法主要考虑三个重要的要素,对于固定的训练集,只要这三点确定了,算法的预测方式也就决定了。这三个要素是:k值的选取,距离度量的方式和分类决策规则。
实现思路:
首先考察一下数据集的基本信息,对数据进行预处理,然后以3:1的比例划分训练集和测试集,因为总共有768个样本,所以训练集有576个样本,测试集有192个样本。通过算法模型进行训练后,调用预测函数对测试集进行预测,将结果和测试集原始值比较,计算出准确度。
开发工具:
Anaconda3的Jupyter Notebook
一、数据预处理
1.导入库和数据
结果说明糖尿病数据集由768个样本点组成,各有9个特征“Outcome”是我们将要预测的特征,0意味着未患糖尿病,1意味着患有糖尿病。在768个数据点中,500个被标记为0,268个标记为1。
如果想要进一步查看基本信息,可以输入代码:diabetes.info()
3.分割训练集和测试集
train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取traindata和test data,
random_state=66表示随机数的种子为66,即把整体数据按照3:1的比例随机分配给训练集和测试集。
其中X_train表示预测变量的训练集,X_test表示预测变量的测试集,y_train表示结果变量的训练集,y_test表示结果变量的测试集。
二、基于KNN的分类算法:
结果表示训练集样本数为576,测试集样本数为192,刚好3:1。
总结:对皮马印第安人糖尿病数据集进行了分析和预处理,并且利用K近邻算法建立了糖尿病预测模型,通过调节算法参数,统计出了模型对于是否患糖尿病的二分类问题的预测准确度。
作业:
1.对KNN分类算法的不同参数与K值取值进行研究。
2.探索其他分类算法,并做对比试验。
关注“健康数据”或者HealthDT,查看更多...