基于机器学习的企业定价算法研究
基于机器学习的企业定价算法研究是由我国西安交通⼤学管理学院发布:本⽂根据经济 微观仿真模型 ASPEN 的定价机理,提出了⼀种⾃动学习算法。该算法借鉴分类器系统中的 规则及消息系统和信任分配系统,模拟了企业通过渐进学习得到最⼤利润下的价格的过程。 ⽂中以⼀个简单经济模型中的两个企业代理⼈的价值竞争为例将算法的定价与理论计算法的 结果进⾏了⽐较,⽐较结果表明该算法很好地实现了企业定价的⾃动学习。
论⽂摘要:
ASPEN 中企业定价的机理是:在定价过程中,企业⾸先要根据四个因素判断⾃⼰当前所 处的市场状态,再采取相应的对策。在每种市场状态下企业都有三种对策:提⾼价格、降低 价格和维持价格不变。⽽本⽂的⾃动学习算法主要借鉴了分类器系统的⼀些思想和作法并且 根据实际问题作了⼀些简化和修正。分类器系统是最常⽤的机器学习⽅法之⼀由规则与消息 (rule and message)系统、信⽤分(apportionment of credit)系统及遗传算法三个部 分组成。
⽂本分析:
算法得到的价格与理论计算法的价格基本相符,不依赖于初始价格,并且算法不因为参 数的改变⽽失效,具有智能性和有效性。这种思想及实现的算法类似于真实市场中企业定价 决策,所以本⽂的算法也可以实际应⽤于企业的定价实践为企业定价提供科学⽀持,当然算 法与实际的企业和市场相结合时还需要做更多的⼯作。
参考来源:
冯 平,宣慧⽟,⾼宝俊,Journal of Industrial Engineering,2002.4,1004-6062(2002)04-0055-05
"def aspen_pricing(version, modules, user_count, is_academic, service_in
cluded=True):
"""
模拟
ASPEN
软件的定价计算
参数: version:
版本类型,可选
"basic"
(基础版)、
"professional"
(专业版)、
"enter
prise"
(企业版) modules:
可选模块列表,如
["reactor", "thermodynamics", "optimizatio
n"]
user_count:
⽤⼾数量(整数) is_academic:
是否为学术⽤⼾(布尔值) service_included:
是否包含年度服务(布尔值)
返回: total_price:
总定价(单位:美元
/
年,假设订阅制) """
# 1.
基础费⽤(美元
/
年) base_prices = {
"basic": 10000,
"professional": 30000,
"enterprise": 80000
}
base_price = base_prices.get(version, 0)
if base_price == 0:
raise ValueError("
⽆效的版本类型
")
# 2.
模块费⽤(每个模块的额外费⽤) module_prices = {
"reactor": 5000,
"thermodynamics": 8000,
"optimization": 6000,
"economics": 4000
}
module_cost = sum([module_prices[mod] for mod in modules if mod in
module_prices])
# 3.
⽤⼾数量加价(单⽤⼾免费,多⽤⼾阶梯加价) if user_count <= 1:
user_cost = 0
elif 2 <= user_count <= 5:
user_cost = base_price * 0.2 * (user_count - 1) #
额外⽤⼾按基础价
20%/
⼈ else:
user_cost = base_price * 0.2 * 4 + base_price * 0.1 * (user_cou
nt - 5) #
超过
5
⼈部分按
10%/
⼈
# 4.
服务费⽤(基础费⽤
+
模块费⽤的
15%
) service_cost = (base_price + module_cost) * 0.15 if service_include
d else 0
# 5.
折扣(学术⽤⼾
7
折,企业⽤⼾⽆折扣) discount = 0.7 if is_academic else 1.0
#
计算总价 total_price = (base_price + module_cost + user_cost + service_cos
t) * discount
return round(total_price, 2)
#
⽰例:计算学术⽤⼾的专业版定价#
条件:专业版
+
反应器模块
+
热⼒学模块
+ 3
个⽤⼾
+
包含服务price = aspen_pricing(
version="professional",
modules=["reactor", "thermodynamics"],
user_count=3,
is_academic=True,
service_included=True
)
print(f"
总定价:
${price}/
年