基于线性回归根据饮食习惯和身体状况估计肥胖水平


1. 作者介绍

刘欢,女,西安工程大学电子信息学院,2023级研究生
研究方向:机器视觉与人工智能
电子邮件:2768691353@qq.com

孙思伟,男,西安工程大学电子信息学院,2023级研究生
研究方向:深度强化学习与人工智能
电子邮件:sunsiwei0109@163.com

2.饮食习惯与身体状况数据集介绍

该数据集来自于UCL机器学习知识库,数据集包括墨西哥、秘鲁和哥伦比亚等国基于饮食习惯和身体状况的个体肥胖水平估计数据。数据包含17个属性和2111条记录,这些记录标有类变量肥胖等级,允许使用体重不足、正常体重、超重一级、超重二级、肥胖一级、肥胖二级和肥胖三级的值对数据进行分类。77%的数据是使用Weka工具和SMOTE过滤器综合生成的,23%的数据是通过网络平台直接从用户那里收集的。

属性 含义 取值
Gender 性别 Female、Male
Age 年龄 整数取值
Height 身高 小数 (m)
Weight 体重 整数取值 (kg)
family_history_with_overweight 家庭肥胖历史 Yes、No
FAVC 经常食用高热量食物 Yes、No
FCVC 食用蔬菜的频率 No (0) 、 Sometimes(1) 、 Frequently(2) 、 Always(3)
NCP 主餐次数 1-2、3、>3
CAEC 两餐之间食用食物 No、Sometimes、Frequently、Always
SMOKE 是否抽烟 Yes、No
CH2O 每日饮水量 1 (a little) 、 2 (1-2L) 、 3 (>2L)
CALC 饮酒 No、Sometimes、Frequently、Always
SCC 卡路里消耗监测 Yes、No
FAF 身体活动频率 0 (No) 、 1 (1-2天) 、 2 (2-4天) 、 3 (4-5天)
TUE 每日坐着的时间 0 (0-2h) 、 1 (3-5h) 、 2 (>5h)
MTRANS 使用的交通工具 Automobile、Motorbike、Bike、Public、Transportation、Walking
NObeyesdad 肥胖等级 Based on the WHO Classification

Gender、Age、Family_history_with_overweight、FAVC、FCVC、NCP、CAEC、SMOKE、CH2O、CALC、SCC、FAF、TUE作为目标特征,Height、Weight作为体重指数(MBI)的特征,NObeyesdad作为标签,为了确定肥胖水平,使用世界卫生组织提供的表对基于体重指数分析的数据进行了正确分类,如表1所示,得出每个个体的肥胖等级。
体重指数(MBI)计算公式:
在这里插入图片描述
世界卫生组织肥胖等级表

3.实验步骤

3.1 数据分析

首先导入数据集,对数据进行分析。

# 加载数据
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 查看前五条数据
data = pd.read_csv('dataset.csv')
data.head()

根据程序输出结果,查看数据集数据样本总数和特征变量个数;以及通过数据集前5条数据,查看17个特征变量数据情况。
在这里插入图片描述然后,检查每列缺失值数量。

# 检查每一列缺失值数量
data.isnull().sum()

在这里插入图片描述

3.2 可视化处理数据

绘制直方图(共17张),并将异常数据进行剔除。

在这里插入图片描述

在这里插入图片描述

对自变量进行特征分析,并绘制散点图(共17张)。
在这里插入图片描述绘制热力图,可视化DataFrame中各列之间的相关性。
在这里插入图片描述

3.3 导入线性回归模型进行训练

接着通过上述直方图、散点图和热力图分析,对异常数据进行处理,完成数据的预处理,最后通过导入线性回归模型搭建饮食习惯与身体状况预测模型。

# 训练线性回归模型
LR1 = LinearRegression()
LR1.fit(X, y)

# 预测值
y_predict_1 = LR1.predict(X)

# 模型评估
mean_squared_error_1 = mean_squared_error(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值