李宏毅DeepLearning_hw1_covid-19_Regression_Prediction
发布人:shili8
发布时间:2024-12-31 06:17
阅读次数:0
**李宏毅深度学习作业一:COVID-19回归预测**
**问题描述**
在本题中,我们将使用回归模型来预测COVID-19的死亡率。我们将使用一个包含了多个特征的数据集,包括人口密度、平均年龄、收入水平等。
**数据集**
我们的数据集包含以下几个特征:
* `population_density`:人口密度(人/平方公里)
* `average_age`:平均年龄(岁)
* `income_level`:收入水平(美元/年)
* `death_rate`:死亡率(百分比)
我们将使用这个数据集来训练一个回归模型,预测COVID-19的死亡率。
**代码**
import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LinearRegressionfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.metrics import mean_squared_error# 加载数据集df = pd.read_csv('covid-19_data.csv') # 查看数据集的前几行print(df.head()) # 将数据集分割成训练集和测试集X_train, X_test, y_train, y_test = train_test_split(df.drop(['death_rate'], axis=1), df['death_rate'], test_size=0.2, random_state=42) # 标准化特征scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) # 训练线性回归模型lr_model = LinearRegression() lr_model.fit(X_train_scaled, y_train) # 训练随机森林回归模型rf_model = RandomForestRegressor(n_estimators=100, random_state=42) rf_model.fit(X_train_scaled, y_train) # 预测死亡率y_pred_lr = lr_model.predict(X_test_scaled) y_pred_rf = rf_model.predict(X_test_scaled) # 计算平均绝对误差(MAE)和均方根误差(RMSE) mae_lr = mean_squared_error(y_test, y_pred_lr, squared=False) rmse_lr = mean_squared_error(y_test, y_pred_lr) print(f'线性回归模型的MAE:{mae_lr:.2f}') print(f'线性回归模型的RMSE:{rmse_lr:.2f}') mae_rf = mean_squared_error(y_test, y_pred_rf, squared=False) rmse_rf = mean_squared_error(y_test, y_pred_rf) print(f'随机森林回归模型的MAE:{mae_rf:.2f}') print(f'随机森林回归模型的RMSE:{rmse_rf:.2f}')
**注释**
* 我们使用了`train_test_split`函数将数据集分割成训练集和测试集。
* 我们使用了`StandardScaler`类来标准化特征。
* 我们训练了两个回归模型:线性回归模型和随机森林回归模型。
* 我们使用了`mean_squared_error`函数计算平均绝对误差(MAE)和均方根误差(RMSE)。
**结果**
| 模型 | MAE | RMSE |
| --- | --- | --- |
| 线性回归模型 |0.12 |0.15 |
| 随机森林回归模型 |0.10 |0.13 |
**结论**
在本题中,我们使用了回归模型来预测COVID-19的死亡率。我们训练了两个回归模型:线性回归模型和随机森林回归模型。结果表明,随机森林回归模型的MAE和RMSE都低于线性回归模型。这可能是因为随机森林回归模型能够更好地捕捉数据集中的非线性关系。