当前位置: 首页 > article >正文

NCU-机器学习-作业4:基于XGboost的收入分类预测

输入数据:

在train/目录下包含一个train.csv文件,其中每行表示数据的一条记录。文件中每行共有18列,列income为收入分类(0表示小于等于50k,1表示大于50k)。其余各列为数据对象的各项参数特征(连续属性:age、fnlwgt、education-num、capital-gain;workclass、capital-loss、hours-per-week;离散属性:education、marital-status、occupation、relationship、race、sex、native-country)。训练数据集可在教学资料中下载,微文件名:xgboost-train.csv。

在test/目录下包含一个test.csv文件,与train.csv类似,只不过test.csv不包含income列,您需要根据参数给出预测。

输出数据:

您的程序需要生成一个result.csv文件,用于保存您程序的预测结果。第一行固定为income,之后每一行为一个1或0的值表示预测结果。

评价指标:

准确率。

输入样例:

age,workplace,id,education,education_num,marital_status,occupation,relationship,race,sex,capital_gain,capital_loss,hours_per_week,native_country,income
39, State-gov,77516, Bachelors,13, Never-married, Adm-clerical, Not-in-family, White, Male,2174,0,40, United-States,0
50, Self-emp-not-inc,83311, Bachelors,13, Married-civ-spouse, Exec-managerial, Husband, White, Male,0,0,13, United-States,0
38, Private,215646, HS-grad,9, Divorced, Handlers-cleaners, Not-in-family, White, Male,0,0,40, United-States,0

输出样例:

income
1
0
0
0
1

代码:

import pandas as pd
import xgboost as xgb

# 加载数据
train_data = pd.read_csv('train/train.csv')
test_data = pd.read_csv('test/test.csv')

# 分离特征和标签
X_train = train_data.drop('income', axis=1)
y_train = train_data['income']
X_test = test_data
# print(X_test)

# 独热编码类别型特征
X_train = pd.get_dummies(X_train)
X_test = pd.get_dummies(X_test)

# 确保训练集和测试集有相同的列
X_test = X_test.reindex(columns=X_train.columns, fill_value=0)

# 训练XGBoost模型
xgb_model = xgb.XGBClassifier(objective='binary:logistic')
xgb_model.fit(X_train, y_train)

# 预测测试数据
predictions = xgb_model.predict(X_test)

# 将预测结果写入CSV文件
result_df = pd.DataFrame({'income': predictions})
result_df.to_csv('result.csv', index=False)

Tips:仅为样例代码。


http://www.kler.cn/news/363307.html

相关文章:

  • 项目提测质量不高导致延期何解?
  • 算法五大排序(Java)
  • 高效改进!防止DataX从HDFS导入关系型数据库丢数据
  • C语言程序设计:现代设计方法习题笔记《chapter3》
  • ChatGPT实现旅游推荐微信小程序
  • STM32G4系列MCU的低功耗模式介绍
  • 我记不住的那些表达式求值
  • 决策树与随机森林在分类问题中的应用
  • 【C++】——多态(上)
  • Java 监听器示例(非界面)
  • 华为ICT题库-大数据部分
  • 【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线
  • 大模型干货 | 提示词工程十大技巧:释放大模型潜力的最佳工具
  • SpringMVC源码-异常处理机制
  • 找到连续赢 K 场比赛的第一位玩家
  • YoloV8改进策略:注意力改进|DeBiFormer,可变形双级路由注意力|引入DeBiLevelRoutingAttention注意力模块(全网首发)
  • Qt初识及其环境搭建
  • 无人机初识及应用概览
  • 实现vuex源码,手写
  • 什么是网络代理
  • torch.argsort 函数介绍
  • 【AIGC】ChatGPT提示词Prompt高效编写模式:Self-ask Prompt、ReACT与Reflexion
  • Java面向对象编程进阶(一)
  • 对于MacOSX开启稳定SMB分享的研究
  • 讲个故事:关于一次接口性能优化的心里路程
  • 数据库运行原理图