第二章:数据基础——拍卖数据来源与字段解读
做量化分析,第一步永远不是跑模型,而是搞清楚你的数据从哪来、长什么样。这个道理我在很多项目里都吃过亏——数据源头搞错了,后面再漂亮的算法都是白搭。
艺术品拍卖数据,说白了就两大巨头:苏富比和佳士得。这两家占了全球高端拍卖市场八成以上的份额。我个人习惯把它们的数据库当作「黄金标准」,因为数据质量最高、字段最完整。
2.1 数据来源:苏富比与佳士得
苏富比(Sotheby's)和佳士得(Christie's)的历史都超过250年。它们公开的拍卖结果,是我们做回归分析最可靠的数据源。
核心区别:
- 苏富比:数据更偏向当代艺术,尤其是战后和当代板块。我做过一个统计,苏富比纽约场的数据量比伦敦场多30%左右。
- 佳士得:古典大师和印象派的数据更全。如果你研究莫奈、梵高这类画家,佳士得的数据会更友好。
为什么会这样?其实跟两家公司的历史定位有关。苏富比在20世纪80年代率先发力当代艺术,而佳士得一直守着古典这块阵地。嗯,这里要注意:千万别混用两家的数据做同一模型,除非你做了严格的标准化处理。我曾经试过把两家数据直接合并跑回归,结果R²直接掉了0.15——因为两家的估价口径不一样。
2.2 数据获取方式
获取这些数据,通常有三种路径:
- 官方API:苏富比和佳士得都有公开的API接口,但限制比较多。我建议小规模实验用这个。
- 爬虫抓取:这是最常用的方式。我个人习惯用Python的Scrapy框架,配合Selenium处理动态加载的页面。
- 第三方数据商:比如Artnet、Artprice。这些平台已经帮你清洗好了数据,但价格不菲。一个完整的数据库可能要几万美金。
我的建议:刚开始做研究,先用官方API抓个几百条数据练手。等模型稳定了,再考虑买第三方数据。别一上来就砸钱,我见过太多人花了几万块买数据,结果发现字段根本用不上。
2.3 核心数据字段解读
现在我们来拆解一下,一条完整的拍卖记录到底包含什么。我把它分成五类:
| 字段类别 | 字段名称 | 说明 | 数据类型 |
|---|---|---|---|
| 身份标识 | 作者(Artist) | 画家的全名,注意同名问题 | 字符串 |
| 时间维度 | 创作年代(Year) | 作品完成的年份,缺失值常见 | 整数 |
| 物理属性 | 尺寸(Size) | 高度×宽度,单位厘米或英寸 | 浮点数 |
| 材料属性 | 材质(Medium) | 如油画、丙烯、水彩等 | 分类变量 |
| 价格信息 | 成交价(Price) | 含佣金的最终价格 | 浮点数 |
这五个字段,是回归分析的基础。但实际项目中,你还会遇到更多字段,比如:
- 估价(Estimate):拍卖行给出的预估价格区间。这个字段很有用,但要注意——估价往往偏低,这是拍卖行的营销策略。
- 拍卖日期(Sale Date):影响价格的市场周期因素。
- 来源(Provenance):作品的流传历史。这个字段很难量化,但影响力巨大。
避坑指南:我曾经遇到过一个案例,某位画家的数据里,尺寸字段有30%是缺失的。后来发现,这些缺失值大多来自「纸上作品」——因为纸上作品的尺寸经常不标准。如果你直接删除这些行,模型会严重偏向「布面油画」这个类别。正确的做法是用中位数填充,或者单独建一个「尺寸缺失」的哑变量。
2.4 数据清洗的常见陷阱
数据拿到手,第一件事不是分析,而是清洗。我总结三个最常见的坑:
- 货币单位不统一:苏富比用美元,佳士得用英镑,有些场次用欧元。我习惯把所有价格统一转换成美元,按拍卖当天的汇率计算。
- 尺寸单位混乱:有些记录用厘米,有些用英寸。1英寸=2.54厘米,这个转换必须做。
- 材质分类太细:原始数据里可能有「oil on canvas」「oil on linen」「oil on board」等几十种。我一般把它们合并成「油画」「丙烯」「水彩」「版画」「综合材料」五大类。
一个实用的代码片段:
# 尺寸标准化函数
def standardize_size(row):
if row['size_unit'] == 'inches':
row['height_cm'] = row['height'] * 2.54
row['width_cm'] = row['width'] * 2.54
else:
row['height_cm'] = row['height']
row['width_cm'] = row['width']
return row
# 材质合并
medium_mapping = {
'oil on canvas': '油画',
'oil on linen': '油画',
'oil on board': '油画',
'acrylic on canvas': '丙烯',
'watercolor': '水彩',
'print': '版画',
'mixed media': '综合材料'
}
2.5 知识体系结构图
下面这张图,把本章的核心逻辑串起来了。你可以把它当作数据准备的检查清单:
这张图你看懂了吗?从左到右,数据从两个拍卖行流出,经过核心字段提取,再进入清洗环节,最后汇聚成结构化数据集。每一步都缺一不可。
一个小技巧:我每次拿到新数据,都会先画一张类似的流程图。不是为了好看,而是为了确认自己有没有遗漏关键步骤。数据准备阶段多花一小时,建模阶段就能省下十小时。
好了,数据基础就聊到这里。记住一句话:垃圾进,垃圾出。数据质量决定了模型的天花板。下一章我们会聊特征工程,到时候你会看到,同样的数据,不同的处理方式,结果能差出十万八千里。
公众号:蓝海数据掘金营,微信deep3321