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

2.2.4

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import joblib
from xgboost import XGBRegressor

# 加载数据集

file_path = '大学生低碳生活行为的影响因素数据集.xlsx'  # 替换为实际的数据集文件路径
data = pd.read_excel(file_path)

# 显示数据集的前五行

print(data.head())

# 删除不必要的列并处理分类变量

data_cleaned = data.drop(columns=['序号', '所用时间'])  # 删除不必要的列

代码解释:

drop,dropna、drop_duplicates的区别

  • drop:用于删除指定的行或列,不涉及缺失值。

  • dropna:用于删除包含缺失值的行或列,不涉及指定的行或列。

  • drop_duplicates:用于删除重复

# 定义自变量因变量

# 定义目标变量和特征
target = '5.您进行过绿色低碳的相关生活方式吗?'  # 确保这是目标变量
features = data_cleaned.drop(columns=[target]) #清除因变量

X = __________
y = data_cleaned[__________]

---

X = features
y = data_cleaned[target]

代码解释:

x是自变量,y是因变量。目标变量是因变量。

所以,y是target

# 将数据拆分为训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练线性回归模型

model = LinearRegression()
model.fit(X_train, y_train)

代码解释:

# 保存训练好的模型

model_filename = '2.2.4_model.pkl'
joblib.__________(model, model_filename)

---

joblib.dump(model, model_filename)

# 进行预测

y_pred = model.predict(X_test)

results.to_csv(results_filename, index=False, sep='\t')  # 使用制表符分隔值保存到文本文件

    f.write(f'均方误差: {mean_squared_error(y_test, y_pred)}\n')
    f.write(f'决定系数: {r2_score(y_test, y_pred)}\n')

# 分析并纠正错误(示例:使用XGBoost)

# 训练XGBoost模型

xgb_model = __________(
    n_estimators=1000,  # 增加树的数量
    __________=0.05,  # 降低学习率
    max_depth=5,  # 调整树的深度
    subsample=0.8,  # 调整样本采样比例
    colsample_bytree=0.8  # 调整特征采样比例
)

----

xgb_model = XGBRegressor(

learning_rate=0.05,  # 降低学习率

代码解释:降低学习率learning_rate,记

# 将XGBoost测试结果保存到报告文件中

report_filename_xgb = '2.2.4_report_xgb.txt'
with open(report_filename_xgb, 'w') as f:
    f.write(f'均方误差: {mean_squared_error(y_test, y_pred_xg)}\n')
    f.write(f'决定系数: {r2_score(y_test, y_pred_xg)}\n')

代码解释:

http://www.xdnf.cn/news/6944.html

相关文章:

  • 【数据结构】1-3 算法的时间复杂度
  • Zookeeper 入门(二)
  • Elasticsearch基础篇-java程序通过RestClient操作es
  • HarmonyOS 影视应用APP开发--配套的后台服务go-imovie项目介绍及使用
  • [创业之路-361]:企业战略管理案例分析-2-战略制定-使命、愿景、价值观的失败案例
  • VueUse/Core:提升Vue开发效率的实用工具库
  • 牛客网NC210769: 字母大小写转换问题解析
  • 灵光一现的问题和常见错误1
  • c++ 仿函数
  • [Android] 奇妙扫描 V1.0.7
  • Linux系统之----重定向
  • 基于OpenCV的SIFT特征和FLANN匹配器的指纹认证
  • 泛微对接金蝶云星空实战案例技术分享
  • C++:C++内存管理
  • DeerFlow试用
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据添加修改删除操作
  • 使用python进行人员轨迹跟踪
  • 打造动效按钮平台 ButtonCraft:我和 CodeBuddy 的协作旅程
  • Nginx应用场景详解与配置指南
  • 源码安装gperftools工具
  • AI Agent | Coze 插件使用指南:从功能解析到实操步骤
  • 湖北理元理律师事务所:债务优化中的双维支持实践解析
  • 【HCIA】聚合VLAN
  • 蓝牙HFP协议概述
  • 开源项目实战学习之YOLO11:12.1 ultralytics-models-sam-blocks.py源码
  • 【Spring】Spring的请求处理
  • Spring-boot初次使用
  • 2.单链表两数相加(java)
  • 记录算法笔记(2025.5.17)验证二叉搜索树
  • 题单:表达式求值1