Python共享单车数据分析及预测代码
时间: 2023-11-25 13:04:59 浏览: 142
当然可以!下面是一个简单的Python共享单车数据分析及预测的代码示例,我们可以使用Pandas和Scikit-Learn库来实现。
首先,我们需要导入必要的库:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
```
然后,我们加载我们要分析的共享单车数据集。在这个示例中,我们使用的是UCI机器学习库中的Bike Sharing Dataset。
```python
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00275/Bike-Sharing-Dataset.zip'
zipfile = 'Bike-Sharing-Dataset.zip'
csvfile = 'hour.csv'
# 下载并解压数据集
import urllib.request
import zipfile
urllib.request.urlretrieve(url, zipfile)
with zipfile.ZipFile(zipfile, 'r') as zip_ref:
zip_ref.extractall()
# 加载数据集
data = pd.read_csv(csvfile)
```
接下来,我们对数据进行一些预处理。在这个示例中,我们选择了一些特征进行分析,并将它们转换为数值类型。
```python
# 选择特征
features = ['season', 'holiday', 'workingday', 'weathersit', 'temp', 'atemp', 'hum', 'windspeed']
# 将特征转换为数值类型
for feature in features:
data[feature] = pd.to_numeric(data[feature], errors='coerce')
```
然后,我们将数据集划分为训练集和测试集。
```python
# 划分数据集
X = data[features]
y = data['cnt']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
接下来,我们使用线性回归模型进行预测。
```python
# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测数据
y_pred = model.predict(X_test)
# 计算误差
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('Mean squared error: %.2f' % mse)
print('Coefficient of determination: %.2f' % r2)
```
最后,我们可以输出模型的预测结果,并可视化预测结果与测试集数据的比较。
```python
# 输出预测结果
predictions = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})
print(predictions)
# 可视化预测结果
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.show()
```
以上就是一个简单的Python共享单车数据分析及预测的代码示例。当然,这只是一个基础的模板,你可以根据实际需求进行修改和优化。
阅读全文