机器学习每周挑战——肥胖数据预测

本文探讨了通过CSV数据集分析个体的性别、年龄、身高、体重等特征与肥胖水平的关系,通过相关性分析和特征工程,构建并比较了逻辑回归、决策树、随机森林和SVM等多种机器学习模型来预测肥胖风险,发现饮食习惯(如高热量食物摄入)和年龄对肥胖有显著影响,而交通方式的影响较小。

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

数据的截图

# 字段    说明
# Gender    性别
# Age   年龄
# Height    身高
# Weight    体重
# family_history_with_overweight    家族肥胖史
# FAVC  是否频繁食用高热量食物
# FCVC  食用蔬菜的频次
# NCP   食用主餐的次数
# CAEC  两餐之间的食品消费:always(总是);frequently(经常);sometimes(有时候)
# SMOKE 是否吸烟
# CH2O  每日耗水量
# SCC   高热量饮料消耗量
# FAF   运动频率
# TUE   使用电子设备的时间
# CALC  酒精消耗量:0(无); frequently(经常);sometimes(有时候)
# MTRANS    日常交通方式:Automobile(汽车);Bike(自行车);Motorbike(摩托车);Public Transportation(公共交通);Walking(步行)
# 0be1dad   肥胖水平


# 肥胖水平中各字段意思
# Ormal_Weight  正常
# Insufficient Weight   体重不足
# Obesity_Type_I    肥胖类型 I
# Obesity_Type_ll   肥胖类型 II
# Obesity_Type_lll  肥胖类型 III
# Overweight_Level_I    一级超重
# Overweight_Level_Il   二级超重

# 了解了各个字段的含义后,我们来看问题
# 问题描述
# 相关性分析
# 群体特征分析
# 构建肥胖风险预测模型
# 数据可视化
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
import seaborn as sns
from sklearn.preprocessing import OneHotEncoder,LabelEncoder,StandardScaler
from scipy.stats import spearmanr
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report


data = pd.read_csv("obesity_level.csv")
pd.set_option("display.max_columns",1000)
print(data.head(5))

 导入需要用到的第三方库,导入数据

# 知道了问题后我们先对数据进行预处理
print(data.info())
print(data.isnull().sum())
data = data.drop('id',axis=1)
data['Age'] = data['Age'].astype('int64')

# 没有缺失值,因此我们来看数据
# 首先ID这一列对我们的分析没有任何帮助,我们将其删除

# 由于年龄应该是整数,但是数据集中年龄存在小数,我们将其转换为整数

处理之后,我们来看第一个问题,相关性分析,想到什么——热力图(斯皮尔曼相关系数)

columns = ['Gender', 'Age', 'Height', 'Weight', 'family_history_with_overweight',
       &
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值