def parseDict(probas, output_name, valid_file=None):
df = pd.DataFrame()
df["row_id"] = probas.keys()
df["place_id"] = df["row_id"].apply(lambda x: map(itemgetter(0),
sorted(probas[x].items(), key=itemgetter(1), reverse=True)[:3]))
if valid_file is not None:
df_valid = pd.read_csv(valid_file, usecols=["row_id", "place_id"])
df_valid.rename(columns={"place_id": "place_id_label"}, inplace=True)
df_merge = pd.merge(df, df_valid, how="left", on="row_id")
valid_score = metrics.mapk(df_merge.place_id_label.values[:, None],
df_merge.place_id.values, 3)
logging.info("total validation score: %f" % valid_score)
np.savetxt("%s.txt" % output_name, [valid_score], fmt="%f")
del df_valid
del df_merge
df["place_id"] = df["place_id"].apply(lambda x: " ".join(map(str, x)))
df.to_csv("%s.csv" % output_name, index=False)
ensemble.py 文件源码
python
阅读 35
收藏 0
点赞 0
评论 0
评论列表
文章目录