这里介绍了这个proj各个文件夹/ 文件/ data 的说明,以及对于进度的说明 [TOC]
outcome_path = 'D:\Desktop\PROJ\PracticePA\data\outcomes20.tsv'
trace_path = 'D:\Desktop\PROJ\PracticePA\data\traces20.tsv'
- 主要用来测试代码逻辑,在2个小数据集上进行的
- 0425已经把命名规范化了,(把20什么的都去掉了),可以直接改data地址从而用到大数据集上
1.输出了一些数据集的basic信息 2. notebook比较好不要写.py了
mlp主要用来设计mlp,初步测试思想
- 一些对于data进行处理的代码
- 处理数据,为了增价拍卖+info不对称的paper但是用的是对称模型
- 根据同路径下的GT_asc_symmetry_gen_demo.ipynb,针对所有setting,利用GT model进行预测,生成所需数据
- GT模型是对称模型,包括fixed和ascending两个情况
- 生成的data在data/info_asymm/results下
- 一共有10个 ['bidincrement','bidfee'] 组合,数量如下
bidincrement bidfee
1 60 1794
75 11717
2 60 3421
5 60 24
6 60 9010
7 75 6
12 60 25233
15 60 25
75 65971
24 60 4218
-
traces中的auction是否都出现在了
outcomes.tsv中呢?YES -
一共记录了7353场auction
- 是为了便于测试,进行设计的大概30行的data
- 是为了便于测试,进行设计的大概30行的data
-
记录了2个dataset共有的auction_id,产生于
BasicInfo/calculate_n.py -
一共有7353个共有的auction_id
-
产生于
BasicInfo/calculate_n.py,记录了2个dataset共有的auction_id,用2个方法计算出来的n值,以及training可以用到的属性 -
统计结果如下,7353场auction中一共有5个 ['bidincrement','bidfee'] 组合,数量如下
bidincrement bidfee 1 60 143 2 60 112 6 60 1478 12 60 5220 24 60 400
outcomes.tsv是10个!!data_withn只包括bidfee为60的data!which means traces.tsv只包括bidfee==60的auction
3. 一共有unique setting 472个
- 需要的data都在这里,非常重要
- 产生于
calculate_n.py的函数cal_p(),对第1个方法算出来的 ‘n’ 对应的 ‘p’ 进行计算 - 有6133 条data,有472个unique setting
- 列属性为:[product_id,bidincrement,bidfee, n_1,cnt_n_1,p_1],释义是:对应于一个unique setting [product_id,bidincrement,bidfee], 有
cnt_n_1场拍卖结束于n_1轮,这4个比例在当前setting下占比为p_1, - 'n'指的是
n_1,'p'指的是p_1 - 根据
basicinfo_datawithnp.py的分析,可以看到每个setting下样本不是很丰富, 75%分位数的样本数只有14(个)
index product_id bidincrement bidfee size
count 472.000000 4.720000e+02 472.000000 472.0 472.000000
mean 235.500000 1.001327e+07 12.427966 60.0 12.993644
std 136.398925 1.538711e+03 6.152615 0.0 33.396511
min 0.000000 1.000522e+07 1.000000 60.0 1.000000
25% 117.750000 1.001236e+07 12.000000 60.0 2.000000
50% 235.500000 1.001373e+07 12.000000 60.0 4.000000
75% 353.250000 1.001412e+07 12.000000 60.0 14.000000
max 471.000000 1.001548e+07 24.000000 60.0 419.000000
-
需要的data都在这里,非常重要
-
产生于
calculate_n.py的函数cal_p(),对第2个方法算出来的‘n’对应的‘p’进行计算 -
有6219 条data,具体数据释义如上
-
根据
basicinfo_datawithnp.py的分析,可以看到每个setting下样本不是很丰富,75%分位数的样本数同样只有14(个)index product_id bidincrement bidfee size count 472.000000 4.720000e+02 472.000000 472.0 472.000000 mean 235.500000 1.001327e+07 12.427966 60.0 13.154661 std 136.398925 1.538711e+03 6.152615 0.0 34.337890 min 0.000000 1.000522e+07 1.000000 60.0 1.000000 25% 117.750000 1.001236e+07 12.000000 60.0 2.000000 50% 235.500000 1.001373e+07 12.000000 60.0 4.000000 75% 353.250000 1.001412e+07 12.000000 60.0 14.000000 max 471.000000 1.001548e+07 24.000000 60.0 431.000000
- 产生于
calculate_n.py的函数select_data(),目的是根据阈值,select样本数在threshold之上的setting作为数据集来使用,这个csv保存了这些setting可以作为key使用 - 一些threshold设置:(在method_1统计方法下)
- threshold = 16时:包括了103个setting,相当于取了21.822%的settings
- threshold = 17时:包括了99个setting,
- 因此使用
data_withnp_1.csv时最好根据这个文件筛选出来。
-
这个就是由上述key文件,从
data_withnp_1.csv中select的data,作为target data使用 -
simulate_input_data.py最后一段有代码,可以随意挪用
-
产生于
simulate_input_data.py,只需要run代码的part 1-4就可以产生data。下策,依照power-law采样出一些data来当做真实的GT模型的估计数据,注意加上列属性[product_id,bidincrement,bidfee] -
生成多个组的data呢?依照data_withnp_1_selectedkeys.csv来定的。一个文件对应了一个setting,对应了data_withnp_1_selectedkeys.csv的一行
- 产生于../data_handler/data_extract_for_asc_symmetry.ipynb
- 基于
calculate_n.py,重新对数据进行整理。其实主要目的是把“price”和“fixed-price”什么的筛选出来 - 注意其实traces.tsv里并没有记录任何fixed-price auction
- unique_setting = ['product_id', 'bidincrement', 'bidfee','retail'],多了个'retail'
- 未经过threshold筛选
- 同上,但是经过threshold筛选.
- 可以发现,当threshold=16时,
unique_setting增加一项'retail'会让筛选后的data从4614行变成3838
- 产生于../data_handler/data_extract_for_asc_symmetry_2.ipynb
- 用method-2算出来的,不需要traces.tsv
- 记录了fixed-price auction
- 未经过threshold筛选
- 同上,但是经过threshold筛选.
- 产生于../data_handler/data_extract_for_fixed_symmetry.ipynb
- 使用方法一,对于fixed-price的计算
- 同上,但是经过threshold筛选.
- 不咋用这个了
- 来自SA_for_PT_model.ipynb和SA_for_PT_model_delta_eq1.ipynb,两个文件输出的是一样的
- 把PT模型中所有要估计SA参数的key:[product_id,bidincrement,bidfee,retail]的都输出出来
- 来自SA_for_PT_model_delta_eq1.ipynb
- “_PT“表示是对应的是PT模型
- 来自PT_gen_oneforall.ipynb
- "oneforall"表示是common params得出的结果
- 实际上和common params与uniq params,他们的“data_key”是相同的
- 来自SA_for_PT_model_delta_eq1.ipynb,当delta=1时对于另外两个参数的infer,
- 中间文件罢了
- 上表+data_key.csv组成的,来自SA_for_PT_model_delta_eq1.ipynb
- 当delta=1时,对于另外两个参数的infer
- drop掉duration>T的samples
- 同上
- 来自SA_for_PT_one_for_all.ipynb
- 对所有settings infer出来的common params
- 来自
PT_gen.ipynb保存了1288个auction setting的P结果
- “oneforall”表示infer一个common params,用这个params算P
- “1303”表示只筛下去了duration < T的samples,剩下1303个settings
- 对所有settings分别infer一组参数
- “1303”表示只筛下去了duration < T的samples,剩下1303个settings
- 对应的是小数据的那篇paper,计算的是增加拍卖的情况
- 上述实验,在某个setting上进行的小demo
- 对应的是小数据的那篇paper,计算的是定价拍卖的情况
- 上述实验,在某个setting上进行的小demo
- 对应的是PT模型的那篇paper,在某个setting上进行的小demo
- 实际上是在通过SA做infer
- 对应的是PT模型的那篇paper
- 是在复现table 1的结果
- 用所有settings infer得到的common params,去生成
- 对应的是PT模型的那篇paper
- 在PT_demo.ipynb的基础上,通过SA求解所有setting的参数
- 但是慢,基本敲定用↓这个版本
- 对应的是PT模型的那篇paper
- 在PT_demo.ipynb的基础上,通过SA求解所有setting的参数
- 设置所有
delta=1,只需要infer 2个参数,最终结果在params_opitim_delta_wset.csv - 注意有的结果infer不出来 QAQ
- 探究了一下30个infer不出来的setting是为什么
- 探究完毕后infer出来了15个,剩30个无能为力
- 对15个infer不出来的settings,进行了(-0.3,0.3)上粒度为0.01的,600次对alpha值的查找,
- But fail
- 为所有settings,infer出 common params
- 改了下
sko.SA。把不需要的部分注释掉 - 在加噪音的时候,对于两个参数加了不同的噪音。(原code加的是一个噪音)
- 用infer好的参数,求P并且保存P到
data/pt/results/PT_all1288_P.csv - 一共1288个auction settings,把这些settings(P的keys)保存在
../data/SA_PT/data_key_15.csv
- 类名: 单词首字母大写,单词无分隔
参考:
class Logrecord(object): - 普通变量、普通函数: 小写字母,单词用_分割
参考:
exc_info = read_csv(file_path) - 模块名(文件夹): 小写字母,单词用_分割
参考:
test_on_smalldata - 包名: 小写字母,单词之间用_分割
参考:
logging