基于机器学习sklearn算法的超市预测分析python代码
时间: 2024-11-07 13:13:34 浏览: 30
基于Python的scikit-learn库进行超市销售预测分析,通常涉及数据预处理、特征工程、模型选择和训练等步骤。这里是一个简单的示例,假设我们想要预测某种商品的销量:
```python
# 导入所需的库
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
# 加载数据
data = pd.read_csv('supermarket_sales_data.csv') # 假设数据文件名是这个
# 数据预处理
data['date'] = pd.to_datetime(data['date']) # 如果日期是字符串类型
data.set_index('date', inplace=True) # 设定日期为索引
sales_series = data['sales']
# 特征工程 (如果有的话,如时间序列分解、滚动窗口统计等)
X = sales_series.shift().rolling(window=30).mean() # 这里简单地使用了前一个月的平均值作为特征
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, sales_series, test_size=0.2, shuffle=False)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 训练模型
model = LinearRegression() # 使用线性回归模型,也可以尝试其他模型如ARIMA或Prophet
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 可视化结果
import matplotlib.pyplot as plt
plt.plot(y_test, label='Actual Sales')
plt.plot(y_pred, label='Predicted Sales')
plt.legend()
plt.show()
# 结果评估
from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse}\nR-squared: {r2}")
#
阅读全文