EADST

Using SVR to Do Sales Forecasts

I used python pandas package to load the data, and sklearn package to do predictions.

# -*- coding: UTF-8 -*-
import pandas as pd

data_frame = pd.read_excel('sample.xlsx',
                         sheet_name='xdata-1')

days = data_frame['day_of_year'].unique()
# pay_time = data_frame['pay_time'].unique()
# day_of_week = data_frame['day_of_week'].unique()
# week_of_year = data_frame['month_of_year'].unique()
# act_class = data_frame['act_class'].unique()

x, y = [], []
for day in days:
    df1 = data_frame[(data_frame['day_of_year'] == day)]['num'].sum()
    df2 = data_frame[(data_frame['day_of_year'] == day)]['pay_price'].sum()
    df3 = data_frame[(data_frame['day_of_year'] == day)]['act_class'].sum()
    df4 = data_frame[(data_frame['day_of_year'] == day)]['month_of_year'].sum()
    df5 = data_frame[(data_frame['day_of_year'] == day)]['week_of_year'].sum()
    df6 = data_frame[(data_frame['day_of_year'] == day)]['day_of_month'].sum()
    df7 = data_frame[(data_frame['day_of_year'] == day)]['day_of_week'].sum()
    # x.append([day, round(df2/float(df1), 2), round(df3/float(df1), 2)])
    x.append([day, round(df2 / float(df1), 2), round(df3 / float(df1), 2),
              df4, df5, df6, df7])
    y.append(df1)

import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error, accuracy_score
np.random.seed(0)
x.extend(x[-3:])
y.extend(y[-3:])

x = np.array(x)
y = np.array(y)

clf = SVR(kernel='linear', C=20)
# x_tran, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)


x_tran, x_test, y_train, y_test = x[:-3], x[-3:], y[:-3], y[-3:]
clf.fit(x_tran, y_train)
y_hat = clf.predict(x_test)
print(y_hat)
print("R2:", r2_score(y_test, y_hat))
print("RMSE:", np.sqrt(mean_squared_error(y_test, y_hat)))
print("MAE:", mean_absolute_error(y_test, y_hat))
# print("Accuracy: ", accuracy_score(y_test, y_hat))
r = len(x_test) + 1
# print(y_test)
plt.plot(np.arange(1,r), y_hat, 'go-', label="predict")
plt.plot(np.arange(1,r), y_test, 'co-', label="real")
plt.legend()
plt.show()

相关标签
About Me
XD
Goals determine what you are going to be.
Category
标签云
Algorithm Translation SQL Math Markdown Land Clash 腾讯云 News Food CEIR UI Domain Random NLP 阿里云 Pillow Template Github 版权 diffusers SVR Input Windows Zip scipy Docker XML 图形思考法 GIT InvalidArgumentError Django 音频 uWSGI NameSilo Qwen2 CAM llama.cpp Knowledge NLTK Vim Gemma XGBoost 云服务器 ResNet-50 Tiktoken WebCrawler Logo Pytorch 算法题 Web Sklearn JSON Dataset Distillation Cloudreve Magnet LLM Jetson PDB Freesound 递归学习法 GoogLeNet ModelScope Firewall git Linux Attention GGML git-lfs FP16 VGG-16 GPT4 Nginx TensorFlow torchinfo BeautifulSoup 证件照 Transformers ONNX LLAMA Tracking CSV Animate Heatmap Qwen2.5 Proxy DeepSeek SPIE Review Bert Datetime Miniforge Statistics 顶会 tar Pickle Pandas printf Excel Safetensors v2ray transformers GPTQ EXCEL 飞书 CTC Quantize Tensor FlashAttention Augmentation FastAPI QWEN Google 报税 Git IndexTTS2 Conda DeepStream uwsgi TSV C++ OpenAI RGB 域名 Claude Video Password Ptyhon Hilton PyTorch Bipartite AI Card Ubuntu CLAP Color Shortcut Streamlit COCO Anaconda HuggingFace RAR YOLO 继承 Website Data LoRA TTS 净利润 Diagram SAM TensorRT Paddle hf Agent Paper 多线程 Qwen Quantization Mixtral Hungarian BF16 关于博主 Use PyCharm OCR logger PDF Baidu Jupyter v0.dev FP32 财报 Search PIP CUDA Llama 搞笑 HaggingFace CC Plotly UNIX BTC LaTeX 第一性原理 FP8 VPN API Base64 Hotel Plate FP64 Bitcoin 公式 Disk tqdm MD5 OpenCV Michelin Breakpoint Permission mmap WAN VSCode Image2Text 强化学习 LeetCode Interview Bin Numpy Python 签证 SQLite ChatGPT Vmess CV 多进程 Crawler
站点统计

本站现有博文321篇,共被浏览782548

本站已经建立2475天!

热门文章
文章归档
回到顶部