Kaggle -- Multi-Class Prediction of Obesity Risk

news2025/1/13 13:14:22

使用简单的决策树进行分类,代码如下:

import pandas as pd
import numpy as np
from sklearn.preprocessing import OneHotEncoder
from sklearn.model_selection import train_test_split

df = pd.read_csv("train.csv")

df['Gender'] = df['Gender'].map({'Male': 1,'Female': 0})
print(df.loc[0])

# 肥胖转换
label = df['NObeyesdad'].values
label = np.unique(label)
print(label)

# 将标签转换为 one-hot 编码
encoder = OneHotEncoder(sparse=False)
one_hot_labels = encoder.fit_transform(label.reshape(-1, 1))

print(one_hot_labels)

la = {'Insufficient_Weight': 1,'Normal_Weight':2,'Obesity_Type_I':3,'Obesity_Type_II':4,'Obesity_Type_III':5,'Overweight_Level_I':6,'Overweight_Level_II':7}

df['NObeyesdad'] = df['NObeyesdad'].map(la)
print(df.loc[0])

df['family_history_with_overweight'] = df['family_history_with_overweight'].map({'yes':1,'no':2})
df['FAVC'] = df['FAVC'].map({'yes':1,'no':0})
df['SMOKE'] = df['SMOKE'].map({'yes':1,'no':0})

x_labels = ['Gender','Age','Height','Weight','family_history_with_overweight','FAVC','FCVC','NCP','SMOKE','CH2O','FAF','TUE']
y_labels = ['NObeyesdad']
x = df[x_labels]
y = df[y_labels]


x_train,x_test,y_train,y_test = train_test_split(x,y,shuffle=True,test_size=0.2)
print(x_train.size)

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

clf = DecisionTreeClassifier()
clf.fit(x_train,y_train)
y_pred = clf.predict(x_test)
acc = accuracy_score(y_test,y_pred)

print(f'决策树准确率{acc}')


pred = pd.read_csv("test.csv")
pred['Gender'] = pred['Gender'].map({'Male': 1,'Female': 0})
pred['family_history_with_overweight'] = pred['family_history_with_overweight'].map({'yes':1,'no':2})
pred['FAVC'] = pred['FAVC'].map({'yes':1,'no':2})
pred['SMOKE'] = pred['SMOKE'].map({'yes':1,'no':2})
pred['Weight'] = (pred['Weight'] - np.min(pred['Weight'])) / (np.max(pred['Weight'] - np.min(pred['Weight'])))
pred['Height'] = (pred['Height'] - np.min(pred['Height'])) / (np.max(pred['Height'] - np.min(pred['Height'])))


ans = pd.DataFrame()
ans['id'] = pred['id'].copy()
print(ans.info)

ans['NObeyesdad'] = clf.predict(pred[x_labels])
la_reversed = {v: k for k, v in la.items()}
ans['NObeyesdad'] = ans['NObeyesdad'].map(la_reversed)
print(ans['NObeyesdad'])

ans.to_csv("ans.csv",index=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1819760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React 中的 Lanes

React 中有一个 Lane 的概念,Lane 就像高速路上的不同车道,具有不同优先级,在 React Lane 通过一个 32 位的二进制数来表示。越小优先级别越高,SyncLane 级别最高。用二进制存储的方式,可以通过逻辑操作快速判断 Lane …

vite.config.js如何使用env的环境变量

了解下环境变量在vite中 官方文档走起 https://cn.vitejs.dev/guide/env-and-mode.html#env-variables-and-modes 你见到的.env,.env.production等就是放置环境变量的 官方文档说到.env.[mode] # 只在指定模式下加载,比如.env.development只在开发环境加载 至于为什么是deve…

算法课程笔记——线段树维护矩阵

算法课程笔记——线段树维护矩阵 2

【每日一练 】day2

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 🎈丠丠64-CSDN博客🎈 ✨✨ 帅哥美女们,我们共同加油!一起…

代理IP常见问题解答,新手必看手册

代理IP在互联网数据收集和业务开展中发挥着重要作用,它充当用户客户端和网站服务器之间的“屏障”,可以保护用户的真实IP地址,并允许用户通过不同的IP地址进行操作。然而,在使用代理IP的过程中,用户经常会遇到一些问题…

2.spring cloud gateway 源码编译

spring cloud gateway编译 1.编译 命令 mvn clean compile -U2.报错 报错信息 核心信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (checkstyle-validation) on project spring-cloud-gateway-mvc: Failed during …

javaWeb项目-ssm+vue中国风音乐推介网站功能介绍

本项目源码:java-ssmvue中国风音乐推介网站源码说明文档资料资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、…

setOptMode -holdTargetSlack与-holdSlackFixingThreshod

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 -holdTargetSlack与-holdSlackFixingThreshod这两个option都是针对hold slack的,前者限制slack的目标,默认是0,也就是说工具尽可能会收敛时序…

vivado HW_SYSMON

描述 系统监视器HW_SYSMON是Xilinx上的一个模数转换器(ADC)电路 用于测量诸如温度和电压之类的操作条件的设备。这个 HW_SYSMON通过片上温度和电源监控物理环境 传感器。ADC为一系列应用提供了高精度模拟接口。这个 ADC最多可访问17个外部模拟输入通道。…

分类模型:MATLAB判别分析

1. 判别分析简介 判别分析(Discriminant Analysis) 是一种统计方法,用于在已知分类的样本中构建分类器,并根据特征变量对未知类别的样本进行分类。常见的判别分析方法包括线性判别分析(Linear Discriminant Analysis, …

MySQL workbench:E-R 图与 mysql 脚本之间相互转换

我们都知道 MySql 是关系型数据库的开发语言,描述一个关系型数据库的方式有 E-R 图法。MySql workbench 是 MySql 社区版自带的免费工具。也是比较好用的图形界面客户端管理工具。支持正向及逆向工具。 MySql workbench 下载安装 官方下载地址:https://…

深度学习长文|使用 JAX 进行 AI 模型训练

引言 在人工智能模型的开发旅程中,选择正确的机器学习开发框架是一项至关重要的决策。历史上,众多库都曾竞相争夺“人工智能开发者首选框架”这一令人垂涎的称号。(你是否还记得 Caffe 和 Theano?)在过去的几年里&…

Camtasia Studio 2024软件最新版下载及详细安装教程

​Camtasia是一款屏幕录制和视频剪辑软件,教授课程,培训他人,以更快的速度和更吸引人的方式进行沟通和屏幕分享,使您在Windows和Mac上进行录屏和剪辑创作专业外观的视频变得更为简单。 让您用更短的时间创作更多的视频&#xff0…

java:【@Import】和【ImportSelector】的简单示例

# 代码结构 # 项目【myBeanBranch】 【pom.xml】 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.15.RELEASE</version> </dependency> <dependency><g…

聚鼎科技:装饰画行业新手怎么入局

进入装饰画行业&#xff0c;对于新手而言既是机遇也是挑战。此行业融合了艺术感与市场需求&#xff0c;要求从业者不仅需要具备良好的审美能力&#xff0c;还要了解市场动态&#xff0c;掌握一定的营销策略。 明确定位是入局的第一步。新手应该确定自己想要涉足的装饰画领域&am…

杂波场景下的CA CFAR、SO CFAR、GO CFAR目标检测【附MATLAB代码】

文章来源&#xff1a;微信公众号&#xff1a;EW Frontier 主要内容 clc; clear all; ​ v11;%杂波边缘方差 v215; noise_db110; noise_db220; noise_p110.^(noise_db1./10);%噪声功率 noise_p210.^(noise_db2./10); c110^(noise_db1/10)random(Normal,0,v1,1,200); % 这里…

纯干货:css3单边倾斜-异形tab切换的实现方法

先来看效果: 实际实现中,第一个tab项是只有右边是倾斜的,左边是竖直的,跟我们平时的写法不同。 实现方法: 这里的方法就是用before和after叠加实现。 Html: <div class="bd"><div class="tabs"><div class="tab tab1 act…

韩顺平0基础学java——第22天

p441-459 异常exception 选中代码块&#xff0c;快捷键ctraltt6&#xff0c;即trt-catch 如果进行了异常处理&#xff0c;那么即使出现了异常&#xff0c;但是会继续执行 程序过程中发生的异常事件分为两大类&#xff1a; 异常体系图※ 常见的运行异常&#xff1a;类型转换…

【全开源】图书借阅管理系统源码(ThinkPHP+FastAdmin)

&#x1f4da;图书借阅管理系统&#xff1a;打造你的私人图书馆 一款基于ThinkPHPFastAdmin开发的简易图书借阅管理系统&#xff0c;一款轻量级的图书借阅管理系统&#xff0c;具有会员管理&#xff0c;图书管理&#xff0c;借阅及归还管理&#xff0c;会员充值等基本功能&…

连接亚马逊云EC2的几种方式

一般来说&#xff0c;我们会用SSH 来连接EC2&#xff0c;在亚马逊云上还有其他的几种办法&#xff08; Instance Connect/SSM/Serial Console&#xff09;&#xff0c;我们来一个一个说明。 EC2 Instance Connect 这个方式使用基于浏览器的 EC2 Instance Connect 客户端来连接…