In [1]:
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())

# 选择相关特征进行建模
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)

# 创建并训练决策树回归模型
dt_model = DecisionTreeRegressor(random_state=42)
# 训练决策树回归模型
dt_model.fit(X_train, y_train)

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

# 进行预测
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')
                         Timestamp Your name  Your gender  Your age   \
0  2019/07/03 11:48:07 PM GMT+5:30    Parkavi       Female  19 to 25   
1  2019/07/03 11:51:22 PM GMT+5:30   Nithilaa       Female  19 to 25   
2  2019/07/03 11:56:28 PM GMT+5:30  Karunya v       Female  15 to 18   
3   2019/07/04 5:43:35 AM GMT+5:30     Anusha       Female  15 to 18   
4   2019/07/04 5:44:29 AM GMT+5:30   Nikkitha       Female  19 to 25   

   How important is exercise to you ?  \
0                                   2   
1                                   4   
2                                   3   
3                                   4   
4                                   3   

  How do you describe your current level of fitness ?  \
0                                               Good    
1                                          Very good    
2                                               Good    
3                                               Good    
4                                              Unfit    

  How often do you exercise?  \
0                      Never   
1                      Never   
2        1 to 2 times a week   
3        3 to 4 times a week   
4                      Never   

  What barriers, if any, prevent you from exercising more regularly?           (Please select all that apply)  \
0    I don't have enough time;I can't stay motivated                                                            
1     I don't have enough time;I'll become too tired                                                            
2                             I can't stay motivated                                                            
3                           I don't have enough time                                                            
4                             I can't stay motivated                                                            

  What form(s) of exercise do you currently participate in ?                        (Please select all that apply)  \
0                            I don't really exercise                                                                 
1                        Walking or jogging;Swimming                                                                 
2                                 Walking or jogging                                                                 
3             Walking or jogging;Gym;Lifting weights                                                                 
4                            I don't really exercise                                                                 

  Do you exercise ___________ ?  \
0       I don't really exercise   
1                  With a group   
2                         Alone   
3                         Alone   
4       I don't really exercise   

  What time if the day do you prefer to exercise?  \
0                                   Early morning   
1                                   Early morning   
2                                   Early morning   
3                                         Evening   
4                                         Evening   

  How long do you spend exercising per day ?  \
0                    I don't really exercise   
1                    I don't really exercise   
2                                 30 minutes   
3                                     1 hour   
4                    I don't really exercise   

  Would you say you eat a healthy balanced diet ?  \
0                                      Not always   
1                                      Not always   
2                                      Not always   
3                                             Yes   
4                                             Yes   

  What prevents you from eating a healthy balanced diet, If any?                         (Please select all that apply)  \
0  Ease of access to fast food;Temptation and cra...                                                                      
1  Ease of access to fast food;Temptation and cra...                                                                      
2                            Temptation and cravings                                                                      
3                            Temptation and cravings                                                                      
4  Ease of access to fast food;Temptation and cra...                                                                      

   How healthy do you consider yourself?  \
0                                      3   
1                                      4   
2                                      4   
3                                      4   
4                                      4   

  Have you ever recommended your friends to follow a fitness routine?  \
0                                                Yes                    
1                                                Yes                    
2                                                Yes                    
3                                                Yes                    
4                                                Yes                    

  Have you ever purchased a fitness equipment?  \
0                                           No   
1                                           No   
2                                          Yes   
3                                           No   
4                                           No   

  What motivates you to exercise?         (Please select all that applies )  \
0  I'm sorry ... I'm not really interested in exe...                          
1  I want to be fit;I want to be flexible;I want ...                          
2                                   I want to be fit                          
3             I want to be fit;I want to lose weight                          
4                                   I want to be fit                          

   daily_steps  
0        12270  
1         5860  
2        10390  
3        10191  
4        10734  
In [ ]: