机器学习(二)——xgboost(实战篇)Pima印第安人数据集上的机器学习-分类算法(根据诊断措施预测糖尿病的发病)

本文介绍了使用Pima印第安人数据集进行机器学习,特别是应用xgboost预测糖尿病。文章涵盖数据加载、特征工程、标准化、数据切分、模型构建(SVM和xgboost)、模型评估和优化,通过交叉验证和GridSearchCV寻找最佳参数。最终,使用最佳模型进行预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


1 、加载库

 

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import pandas as pd # 数据科学计算工具
import numpy as np # 数值计算工具
import matplotlib.pyplot as plt # 可视化
import seaborn as sns # matplotlib的高级API
%matplotlib inline # 在Notebook里面作图/嵌图
%config InlineBackend.figure_format = 'retina'
import warnings
warnings.filterwarnings('ignore')


2 、加载数据并作图查看属性分布特征


【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)

pima = pd.read_csv("pima_indians-diabetes.csv") 

pima.head() 


# panda.head()/panda.tail() 查看Series或者DataFrame对象的小样本;显示的默认元素数量的前五个,当然我们可以传递一个自定义数字

pima.shape 
# panda的shape形状属性,给出对象的尺寸(行数目,列数目)

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


Data Visualization - 数据可视化

1.柱状图
pima.hist(figsize=(16,14))  #查看每个字段的数据分布;figsize的参数显示的是每个子图的长和宽


2.散点图

sns.pairplot(pima, hue = "Outcome")

# seaborn常用命令

【1】set_style()是用来设置主题的,Seaborn有5个预设好的主题:darkgrid、whitegrid、dark、white、ticks,默认为darkgrid
【2】set()通过设置参数可以用来设置背景,调色板等,更加常用
【3】displot()为hist加强版
【4】kdeplot()为密度曲线图
【5】boxplot()为箱图
【6】joinplot()联合分布图
【7】heatmap()热点图
【8】pairplot()多变量图,可以支持各种类型的变量分析,是特征分析很好用的工具

3.箱图

pima.plot(kind='box', subplots=True, layout=(3,3), sharex=False,sharey=False, figsize=(16,14))

#pandas.plot作图:数据分为Series 和 DataFrame两种类型;现释义数据为DataFrame的参数

【0】data:DataFrame
【1】x:label or position,default None 指数据框列的标签或位置参数
【2】y:label or position,default None 指数据框列的标签或位置参数
【3】kind:str(line折线图、bar条形图、barh横向条形图、hist柱状图、
               box箱线图、kde Kernel的密度估计图,主要对柱状图添加Kernel概率密度线、
               density same as “kde”、area区域图、pie饼图、scatter散点图、hexbin)
【4】subplots:boolean,default False,为每一列单独画一个子图
【5】sharex:boolean,default True if ax is None else False
【6】sharey:boolean,default False
【7】loglog:boolean,default False,x轴/y轴同时使用log刻度



4.热度图

column_x = pima.columns[0:len(pima.columns) - 1] # 选择特征列,去掉目标列

column_x # 显示所有特征列信息

corr = pima[pima.columns].corr() # 计算变量的相关系数,得到一个N * N的矩阵

plt.subplots(figsize=(14,12)) # 可以先试用plt设置画布的大小,然后在作图,修改
sns.heatmap(corr, annot = True) # 使用热度图可视化这个相关系数矩阵


3、 数据预处理——特征工程

    3.1、特征选择


# 导入和特征选择相关的包

from sklearn.feature_selection import SelectKBest 
from sklearn.feature_selection import chi2

X = pima.iloc[:, 0:8] # 特征列 0-7列,不含第8列
Y = pima.iloc[:, 8] # 目标列为第8列

select_top_4 = SelectKBest(score_func=chi2, k =4) # 通过卡方检验选择4个得分最
### 部署 Stable Diffusion 的准备工作 为了成功部署 Stable Diffusion,在本地环境中需完成几个关键准备事项。确保安装了 Python 和 Git 工具,因为这些对于获取源码和管理依赖项至关重要。 #### 安装必要的软件包和支持库 建议创建一个新的虚拟环境来隔离项目的依赖关系。这可以通过 Anaconda 或者 venv 实现: ```bash conda create -n sd python=3.9 conda activate sd ``` 或者使用 `venv`: ```bash python -m venv sd-env source sd-env/bin/activate # Unix or macOS sd-env\Scripts\activate # Windows ``` ### 下载预训练模型 Stable Diffusion 要求有预先训练好的模型权重文件以便能够正常工作。可以从官方资源或者其他可信赖的地方获得这些权重文件[^2]。 ### 获取并配置项目代码 接着要做的就是把最新的 Stable Diffusion WebUI 版本拉取下来。在命令行工具里执行如下指令可以实现这一点;这里假设目标路径为桌面下的特定位置[^3]: ```bash git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git ~/Desktop/stable-diffusion-webui cd ~/Desktop/stable-diffusion-webui ``` ### 设置 GPU 支持 (如果适用) 当打算利用 NVIDIA 显卡加速推理速度时,则需要确认 PyTorch 及 CUDA 是否已经正确设置好。下面这段简单的测试脚本可以帮助验证这一情况[^4]: ```python import torch print(f"Torch version: {torch.__version__}") if torch.cuda.is_available(): print("CUDA is available!") else: print("No CUDA detected.") ``` 一旦上述步骤都顺利完成之后,就可以按照具体文档中的指导进一步操作,比如调整参数、启动服务端口等等。整个过程中遇到任何疑问都可以查阅相关资料或社区支持寻求帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值