当前位置:实例文章 » 其他实例» [文章]【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题一Python代码分析

【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题一Python代码分析

发布人:shili8 发布时间:2025-01-04 13:14 阅读次数:0

**2023 年第二届钉钉杯大学生大数据挑战赛**

**初赛 B:美国纽约公共自行车使用量预测分析**

**问题一:Python代码分析**

在本题中,我们需要使用 Python 来分析和预测美国纽约公共自行车的使用量。我们将使用以下数据集:

* **bike_data.csv**:包含纽约公共自行车使用量的历史数据,包括日期、温度、湿度等信息。
* **weather_data.csv**:包含纽约地区天气数据,包括温度、湿度等信息。

**问题一:Python代码分析**

### **1. 导入必要的库**

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_error


* 我们首先导入了 Pandas 库来处理数据,以及 Scikit-learn 库中的 LinearRegression 和 mean_squared_error 函数。

### **2. 加载数据**

# 加载 bike_data.csv 文件bike_df = pd.read_csv('bike_data.csv')

# 加载 weather_data.csv 文件weather_df = pd.read_csv('weather_data.csv')


* 我们使用 Pandas 的 read_csv 函数加载了两个 CSV 文件。

### **3. 数据预处理**

# 将日期转换为 datetime 类型bike_df['date'] = pd.to_datetime(bike_df['date'])

# 将温度和湿度转换为数字类型bike_df['temperature'] = bike_df['temperature'].astype(float)
bike_df['humidity'] = bike_df['humidity'].astype(float)

weather_df['temperature'] = weather_df['temperature'].astype(float)
weather_df['humidity'] = weather_df['humidity'].astype(float)


* 我们将日期转换为 datetime 类型,并将温度和湿度转换为数字类型。

### **4. 特征工程**

# 创建一个新的列,表示天气的影响bike_df['weather_factor'] = bike_df.apply(lambda row:1 if row['temperature'] >20 else -1, axis=1)

# 将 weather_data.csv 文件中的数据合并到 bike_df 中bike_df = pd.merge(bike_df, weather_df, on='date')


* 我们创建了一个新的列,表示天气的影响,并将 weather_data.csv 文件中的数据合并到 bike_df 中。

### **5. 模型训练**

# 将数据分割为训练集和测试集X = bike_df.drop('usage', axis=1)
y = bike_df['usage']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建一个线性回归模型model = LinearRegression()

# 训练模型model.fit(X_train, y_train)


* 我们将数据分割为训练集和测试集,并创建了一个线性回归模型。

### **6. 模型评估**

# 使用测试集来评估模型的性能y_pred = model.predict(X_test)

# 计算平均绝对误差(MAE)
mae = mean_squared_error(y_test, y_pred)
print(f"平均绝对误差:{mae:.2f}")


* 我们使用测试集来评估模型的性能,并计算了平均绝对误差。

### **7. 模型预测**

# 使用训练好的模型来预测未来的使用量future_usage = model.predict([[25,60,1]])
print(f"未来使用量:{future_usage[0]:.2f}")


* 我们使用训练好的模型来预测未来的使用量。

以上就是本题的 Python代码分析。

其他信息

其他资源

Top