内容目录
一、项目介绍二、数据探索
1、查看数据集的基本信息
2、性别和患病的关系
3、年龄和患病的关系
4、身高、体重与患病的关系
三、建模分析
1、计算相关性系数
2、编写预设函数
3、切分数据集
4、初步训练逻辑回归模型
5、数据标准化变换
6、利用KNN做优化
7、模型选择
8、KNN表现
9、逻辑回归表现
一、项目介绍
1、背景描述
数据集包括年龄、性别、收缩压、舒张压等12个特征的患者数据记录7万份。
当患者有心血管疾病时,目标类“cardio”等于1,如果患者健康,则为0。
原文见公众号:python宝
2、导包导数据
# 导入需要的工具包
import pandas as pd # data processing
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns # plot
import pandas_profiling
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report,confusion_matrix
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
warnings.filterwarnings("ignore")
data = pd.read_csv('D:\A\AI-master\py-data\cardio_train.csv',sep=';')
data.head()
id age gender height weight ap_hi ap_lo cholesterol gluc smoke alco active cardio
0 0 18393 2 168 62.0 110 80 1 1 0 0 1 0
1 1 20228 1 156 85.0 140 90 3 1 0 0 1 1
2 2 18857 1 165 64.0 130 70 3 1 0 0 0 1
3 3 17623 2 169 82.0 150 100 1 1 0 0 1 1
4 4 17474 1 156 56.0 100 60 1 1 0 0 0 0
(70000, 13)
二、数据探索
1、查看数据集的基本信息
#info()函数给出样本数据的相关信息概览 :行数,列数,列索引,列非空值个数,列类型,内存占用
data.info()
#describe()函数直接给出样本数据的一些基本的统计量,包括均值,标准差,最大值,最小值,分位数等。
data.describe()
#pandas-profiling能够使用DataFrame自动生成数据的详细报告,相比describe生成的profile要详细的多。
pandas_profiling.ProfileReport(data)
#导出报告,目前pandas-profiling目前只支持导出html格式的文件。如果想要生成图片,先生成的html文件,使用Chrome的内建截屏功能来生成图片,没