2.2.5

随着健康意识的增强,越来越多的人开始使用智能设备跟踪自己的日常活动。准确预测每日步数对于用户来说至关重要,因为它可以帮助他们更好地管理健康状况,设定合理的运动目标,并提高生活质量。现要求根据提供的预处理好的fitness analysis数据集,补全2.2.5.ipynb代码。选择合适的特征,开发一个步数预测模型,对用户未来一段时间内的每日步数进行预测。利用测试工具对模型进行测试,并对测试结果进行分析,完成测试报告,并运用工具对错误原因进行纠正。
(1)正确加载数据集,并显示前五行的数据。
(2)请使用决策树模型,要求设定自变量和因变量(设定daily_steps为目标变量),并根据自变量特征进行模型训练,最终将训练好的模型以文件名2.2.5_model.pkl保存到考生文件夹,结果文件以2.2.5_results.txt保存到考生文件夹。
(3)使用测试工具对模型进行测试,并记录测试结果,命名2.2.5_report.txt,保存到考生文件夹。
(4)对测试结果进行详细分析,并编写测试报告,包括模型性能评估、错误分析及改进建议,将答案写到答题卷文件中,答题卷文件命名为“2.2.5.docx”,保存到考生文件夹。
(5)将以上代码以及运行结果,以html格式保存并命名为2.2.5.html,保存到考生文件夹,考生文件夹命名为“准考证号+身份证后6位”。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
import pickle
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# 加载数据集
df = __________

# 显示前五行数据
print(__________)

# 选择相关特征进行建模
X = df[['Your gender ', 'How important is exercise to you ?', 'How healthy do you consider yourself?']]
X = __________(X)  # 将分类变量转为数值变量

# 设置目标变量
y = __________  

# 将数据集划分为训练集和测试集(测试集占20%)
X_train, X_test, y_train, y_test = __________(__________, random_state=42)

# 创建并训练决策树回归模型
__________ = __________(random_state=42)
# 训练决策树回归模型
__________

# 保存训练好的模型
with open('2.2.5_model.pkl', 'wb') as model_file:
    pickle.__________

# 进行预测
y_pred = __________

# 将结果保存到文本文件中
results = pd.DataFrame({'实际值': y_test, '预测值': y_pred})
results_filename = '2.2.5_results.txt'
__________(__________, index=False, sep='\t')  

# 将测试结果保存到报告文件中
report_filename = '2.2.5_report.txt'
with open(__________) as f:
    f.write(f'均方误差: {__________}\n')
    f.write(f'平均绝对误差: {__________}\n')
    f.write(f'决定系数: {__________}\n')
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
import pickle
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# 加载数据集
df = pd.read_csv('fitness analysis.csv')

# 显示前五行数据
print(df.head(5))

# 选择相关特征进行建模
X = df[['Your gender ', 'How important is exercise to you ?', 'How healthy do you consider yourself?']]
X = pd.get_dummies(X)  # 将分类变量转为数值变量

# 设置目标变量
y = df['daily_steps']

# 将数据集划分为训练集和测试集(测试集占20%)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练决策树回归模型
model = DecisionTreeRegressor(random_state=42)
# 训练决策树回归模型
model.fit(X_test, y_test)

# 保存训练好的模型
with open('2.2.5_model.pkl', 'wb') as model_file:
    pickle.dump(model, model_file)

# 进行预测
y_pred = model.predict(X_test)


# 将结果保存到文本文件中
results = pd.DataFrame({'实际值': y_test, '预测值': y_pred})
results_filename = '2.2.5_results.txt'
results.to_csv(results_filename, index=False, sep='\t')  

# 将测试结果保存到报告文件中
report_filename = '2.2.5_report.txt'
with open(report_filename, 'w') as f:
    f.write(f'均方误差: {mean_squared_error(y_test, y_pred)}\n')
    f.write(f'平均绝对误差: {mean_absolute_error(y_test, y_pred)}\n')
    f.write(f'决定系数: {r2_score(y_test, y_pred)}\n')

运行结果


            Timestamp                  ... daily_steps
    0  2019/07/03 11:48:07 PM GMT+5:30  ...       12270
    1  2019/07/03 11:51:22 PM GMT+5:30  ...        5860
    2  2019/07/03 11:56:28 PM GMT+5:30  ...       10390
    3   2019/07/04 5:43:35 AM GMT+5:30  ...       10191
    4   2019/07/04 5:44:29 AM GMT+5:30  ...       10734
    
    [5 rows x 19 columns]