Appearance
智能步数预测模型开发与测试
1.导入库
python
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_scorepandas:数据处理库,⽤于数据读取和操作train_test_split:数据集划分⼯具,⽤于拆分训练集和测试集DecisionTreeRegressor:决策树回归模型类,⽤于建⽴回归模型(预测连续值)pickle: Python 对象序列化模块mean_squared_error和r2_score:回归评估指标(均⽅误差( MSE )、平均绝对误差( MAE )、决定系数( R² ))
2.数据加载与预览
python
df = pd.read_csv('fitness analysis.csv')
print(df.head())pd.read_csv():读取 CSV ⽂件- 参数:⽂件路径 ('fitness analysis.csv')
head():显⽰前 5 行数据- 功能:加载数据并初步检查数据结构
3.特征工程
python
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']pd.get_dummies():将分类变量转为哑变量 (one-hot 编码 )- 将 'daily_steps' (每⽇步数)列设置为⽬标变量(因变量)
4.数据集划分
python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)train_test_split():划分训练 / 测试集- test_size=0.2 :测试集占 20%
- random_state=42 :固定随机种⼦保证可重复性
5.决策树回归模型
python
dt_model = DecisionTreeRegressor(random_state=42)
dt_model.fit(X_train, y_train)DecisionTreeRegressor(): 创建决策树回归模型- random_state=42 :控制决策树中的随机选择,确保结果可复现
fit():训练模型,学习特征( X_train )与⽬标值( y_train )之间的关系
6.模型保存
python
with open('2.2.5_model.pkl', 'wb') as model_file:
pickle.dump(dt_model, model_file)pickle.dump():序列化保存模型- 'wb' :⼆进制写入模式
- 保存到 '2.2.5_model.pkl'
7.预测与评估
python
y_pred = dt_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')predict():⽣成预测结果创建包含两列的 DataFrame :
- " 实际值 " :测试集的真实⽬标值( y_test )
- " 预测值 " :模型的预测结果( y_pred )
计算三个指标:
- 均⽅误差( MSE ):预测值与实际值差的平⽅均值(越⼩越好)
- 平均绝对误差( MAE ):预测误差绝对值的均值(单位与⽬标值相同)
- 决定系数( R² ):模型解释的数据⽅差⽐例( 0-1 ,越⼤越好)
8.错误分析
- 特征选择问题: 选择的特征变量相关性不高,。
- 模型复杂度过高或过低:
- 异常值或离群点:自变量可能存在异常值,导致模型训练结果不准确。
- 目标变量分布:目标变量数据分布不均
9.改进建议
- 特征工程:重新审视并优化特征选择,确保所选特征对于预测步数具有较强的关联性。
- 处理异常值: 对数据进行更深入的探索,识别并处理任何异常值或离群点,以提高模型的鲁棒性和泛化能力。
- 检查数据分布: 确认目标变量(每日步数)的分布情况,考虑是否需要进行数据变换(如对数变换)以改善模型性能。
- 更换模型:使用随机森林、线性回归等其他模型进行训练测试。