基于各类机器学习模型的糖尿病分类预测

更新时间:2023-07-20 19:12:22 阅读: 评论:0

基于各类机器学习模型的糖尿病分类预测
本文尝试利用各类机器学习模型对糖尿病数据集进行分类预测,还包括对异常值的处理小技巧和组合各类模型计算平均性能的思路。
1.import numpy as np
2.import pandas as pd
3.import matplotlib.pyplot as plt
4.import aborn as sns
5.del_lection import train_test_split
6.from sklearn.linear_model import LogisticRegression
7.from sklearn.svm import SVC, LinearSVC
似笑非笑8.ble import RandomForestClassifier
9.ighbors import KNeighborsClassifier
10.from sklearn.naive_bayes import GaussianNB
11.from sklearn.linear_model import Perceptron
12.from sklearn.linear_model import SGDClassifier
13. import DecisionTreeClassifier
14.ble import BaggingClassifier, GradientBoostingClassifier
15.from xgboost import XGBClassifier
16.ics import accuracy_score
17.from scipy import stats
18.df = pd.read_csv('diabetes.csv')
19.print(df.describe())  # 数据集的描述性分析
untplot(data=df, x='Outcome')  # 查看糖尿病患病和健康样本数量
21.plt.title('糖尿病患病人数vs健康人数')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
24.plt.show()
25.sns.())  # 各影响因素相关性分析热图
26.plt.show()
27.# 查看各影响因素的核密度分布
28.sns.histplot(df, x='Pregnancies', kde=True)  # 怀孕
29.plt.title('怀孕因素分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
32.plt.show()
33.sns.histplot(df, x='Gluco', kde=True)  # 血糖水平
34.plt.title('血糖水平分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
37.plt.show()
38.# 部分患者血糖水平为0,判定为异常值,需要对其进行处理。先找出血糖为0的样本年龄,然后计算与其具有相同年龄的其他非0样本的血糖均值,用该均值填充0。
39.df['Gluco'] = df[['Gluco', 'Age']].apply(lambda x: df[df['Age'] == x['Age'] ]['Gluco'].mean() if x['Gluco'] == 0 el x['Gluco'], axis=1)
40.sns.histplot(df, x='Gluco', kde=True, color='r')  # 分布图中可看出已无0值
41.plt.title('异常值处理后的血糖水平分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
44.plt.show()
45.# 血压水平
46.sns.histplot(df, x='BloodPressure', kde=True)
我们的热情
47.plt.title('血压水平分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal海洋环境污染
50.plt.show()
51.# 血压值低于40可判定为异常值,因此利用与其具有相同年龄的其他样本血压均值对其进行填充。
52.df['BloodPressure'] = df[['BloodPressure', 'Age']].apply(lambda x: df[df['Age'] == x['Age']]['BloodPressure'].mean() if x['BloodPressure'] < 40 el x['BloodPress ure'], axis=1)
53.df['BloodPressure'] = df['BloodPressure'].apply(lambda x: df['BloodPressure'].m ean() if x == 0 el x)
54.# 对年龄均值处理后仍为0的样本直接进行总体均值填充
春天的美景作文55.sns.histplot(df, x='BloodPressure', kde=True, color='r')
56.plt.title('异常值处理后的血压水平分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
59.plt.show()
60.# 皮肤厚度
一百里等于多少米61.sns.histplot(df, x='SkinThickness', kde=True)
62.plt.title('皮肤厚度分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
65.plt.show()
大哥哥大姐姐
66.# 皮肤厚度为0可判定为异常值,利用相同年龄的其他样本皮肤厚度均值对其进行填充。
67.df['SkinThickness'] = df[['SkinThickness', 'Age']].apply(lambda x: round(df[df[ 'Age'] == x['Age']]['SkinThickness'].mean()) if x['SkinThickness'] == 0 el x['Ski nThickness'], axis=1)
68.df['SkinThickness'] = df['SkinThickness'].apply(lambda x: df['SkinThickness'].m ean() if x == 0 el x)
69.# 处理后仍为0的样本直接进行总体均值填充
70.sns.histplot(df, x='SkinThickness', kde=True, color='r')
71.plt.title('异常值处理后的皮肤厚度分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
74.plt.show()
75.# 胰岛素水平
猴子捞月ppt76.sns.histplot(df, x='Insulin', kde=True)
77.plt.title('胰岛素水平分布')
Params['font.sans-rif'] = ['SimHei']
Params['axes.unicode_minus'] = Fal
80.plt.show()
81.# 胰岛素为0可判定为异常值,利用上述同样的方法对其进行填充。
82.df['Insulin'] = df[['Insulin', 'Age']].apply(lambda x: round(df[df['Age'] == x[
'Age']]['Insulin'].mean()) if x['Insulin'] == 0 el x['Insulin'], axis=1)
83.df['Insulin'] = df['Insulin'].apply(lambda x: df['Insulin'].mean() if x == 0 el
x)
84.sns.histplot(df, x='Insulin', kde=True, color='r')
85.plt.title('异常值处理后的胰岛素水平分布')
Params['font.sans-rif'] = ['SimHei']
军事理论课Params['axes.unicode_minus'] = Fal
88.plt.show()

本文发布于:2023-07-20 19:12:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107448.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进行   水平   均值   分布   样本   糖尿病   模型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图