我用随机数制作了一个数据集,其中包含每个销售代表前几个月的销售数据,我想知道是否有办法预测每个代表下个月的销售情况。我不确定机器学习方法是否可以在这里使用。
我主要是在寻求解决这一问题的最佳方法,不需要代码,但可能需要一种最适合这类问题的方法。这是我感兴趣的东西,并且希望在未来应用于更大的数据集。
data = [[1 , 55, 12, 25, 42, 66, 89, 75, 32, 43, 15, 32, 45],
[2 , 35, 28, 43, 25, 54, 76, 92, 34, 12, 14, 35, 63],
[3 ,13, 31, 15, 75, 4, 14, 54, 23, 15, 72, 12, 51],
[4 ,42, 94, 22, 34, 32, 45, 31, 34, 65, 10, 15, 18],
[5 ,7, 51, 29, 14, 92, 28, 64, 100, 69, 89, 4, 95],
[6 , 34, 20, 59, 49, 94, 92, 45, 91, 28, 22, 43, 30],
[7 , 50, 4, 5, 45, 62, 71, 87, 8, 74, 30, 3, 46],
[8 , 12, 54, 35, 25, 52, 97, 67, 56, 62, 99, 83, 9],
[9 , 50, 75, 92, 57, 45, 91, 83, 13, 31, 89, 33, 58],
[10 , 5, 89, 90, 14, 72, 99, 51, 29, 91, 34, 25, 2]]
df = pd.DataFrame (data, columns = ['sales representative ID#',
'January Sales Quantity',
'Fabruary Sales Quantity',
'March Sales Quantity',
'April Sales Quantity',
'May Sales Quantity' ,
'June Sales Quantity',
'July Sales Quantity',
'August Sales Quantity',
'September Sales Quantity',
'October Sales Quantity',
'November Sales Quantity',
'December Sales Quantity'])
您有多个销售代表的情况更为复杂,因为由于他们负责同一产品,除了季节性、自相关等之外,他们的业绩之间可能存在复杂的相关性。您的数据甚至不是一个纯粹的时间序列,而是属于所谓的"面板";数据集。我最近写了一个Python微包salesplansuccess
,它根据历史月度销售数据预测当前(或下一年(的年度销售额。但该模型的一个主要假设是季度季节性(更具体地说,是每个季度从第二个月到第三个月的重复漂移(,这对批发商来说更具特点。该软件包与pip install salesplansuccess
一样安装。您可以修改它的源代码以更好地满足您的需求。极简主义用例如下:
import pandas as pd
from salesplansuccess.api import SalesPlanSuccess
myHistoricalData = pd.read_excel('myfile.xlsx')
myAnnualPlan = 1000
sps = SalesPlanSuccess(data=myHistoricalData, plan=myAnnualPlan)
sps.fit()
sps.simulate()
sps.plot()
有关其使用的更详细说明,您可能需要参考Jupyter Notebook GitHub存储库中的说明文件。
选择预测方法并迭代计算其参数的重复次数。在这里,您可以使用python中的简单线性回归。随着时间的推移,你可以添加一些更智能的东西。
#!/usr/bin/python
data = [[1 , 55, 12, 25, 42, 66, 89, 75, 32, 43, 15, 32, 45],
(...)
months = []
for m in range(len(data[0])):
months.append(m+1)
for rep in range(len(data)):
linear_regression(months, data[rep])