{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c4eeac3f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error, r2_score\n",
    "import joblib\n",
    "from xgboost import XGBRegressor\n",
    "\n",
    "# 加载数据集\n",
    "data = __________\n",
    "\n",
    "# 显示数据集的前五行\n",
    "print(__________)\n",
    "\n",
    "# 删除不必要的列并处理分类变量\n",
    "data_cleaned = __________(__________=['序号', '所用时间'])  # 删除不必要的列\n",
    "data_cleaned = pd.get_dummies(data_cleaned, drop_first=True)  # 将分类变量转换为哑变量/指示变量\n",
    "\n",
    "# 定义目标变量和特征\n",
    "target = '5.您进行过绿色低碳的相关生活方式吗?'  # 确保这是目标变量\n",
    "\n",
    "# 定义自变量和因变量\n",
    "X = __________(__________=__________)\n",
    "y = __________\n",
    "\n",
    "# 将数据拆分为训练集和测试集（测试集占20%）\n",
    "X_train, X_test, y_train, y_test = __________(__________, random_state=42)\n",
    "\n",
    "# 初始化线性回归模型\n",
    "model = __________\n",
    "# 训练线性回归模型\n",
    "__________\n",
    "\n",
    "# 保存训练好的模型\n",
    "model_filename = '2.2.4_model.pkl'\n",
    "joblib.__________\n",
    "\n",
    "# 进行预测\n",
    "y_pred = __________\n",
    "\n",
    "# 将结果保存到文本文件中\n",
    "results = pd.DataFrame({'实际值': y_test, '预测值': y_pred})\n",
    "results_filename = '2.2.4_results.txt'\n",
    "__________(__________, index=False, sep='\\t')  # 使用制表符分隔值保存到文本文件\n",
    "\n",
    "# 将测试结果保存到报告文件中\n",
    "report_filename = '2.2.4_report.txt'\n",
    "with open(report_filename, 'w') as f:\n",
    "    f.write(f'均方误差: {__________}\\n')\n",
    "    f.write(f'决定系数: {__________}\\n')\n",
    "    \n",
    "# 分析并纠正错误（示例：使用XGBoost）\n",
    "# 初始化XGBoost模型（设定树的数量为1000，学习率为0.05，每棵树的最大深度为5，）\n",
    "xgb_model = __________(__________, subsample=0.8, colsample_bytree=0.8)\n",
    "# 训练XGBoost模型\n",
    "__________\n",
    "\n",
    "# 使用XGBoost模型进行预测\n",
    "y_pred_xg = __________\n",
    "\n",
    "# 将XGBoost结果保存到文本文件中\n",
    "results_xg_filename = '2.2.4_results_xg.txt'\n",
    "results_xg = pd.DataFrame({'实际值': y_test, '预测值': y_pred_xg})\n",
    "results_xg.to_csv(results_xg_filename, index=False, sep='\\t')  # 使用制表符分隔值保存到文本文件\n",
    "\n",
    "# 将XGBoost测试结果保存到报告文件中\n",
    "report_filename_xgb = '2.2.4_report_xgb.txt'\n",
    "with open(report_filename_xgb, 'w') as f:\n",
    "    f.write(f'均方误差: {__________}\\n')\n",
    "    f.write(f'决定系数: {__________}\\n')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c13dc515",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
