实战美年健康AI大赛之四_复赛使用数加平台

1. 说明

 美年健康AI大赛的复赛是线上赛,只能使用数加平台。第一次用数加,也遇到一些问题,在此总结一下。

2. 问题及解答

(1) 如何登录?

 得到复赛资格之后,天池赛题网页左侧的列表中就会多出一项“数加”,点击进入后,按提示得到RAM帐号,即可以登录“数据开发平台”和“机器学习平台”,注意登录帐号是用户名和企业别名的组合。
 网页上提供的Demo有点旧了,是2015年的,那时候好像还叫“御膳房”。建议官方及时更新,这样大家可以节约点时间,技术支持人员也没那么累。

(2) 如何访问数据?

 进入“数据开发平台”,点击上方的“数据管理”,即可进入数据界面,左侧的查找数据,可以通过关键字查找该项目下的表,像本题查找meinian就可以看到很多表,其中包括管理员建立的和其他参赛者建立的。 具体的项目名和表名见“赛题与数据”中复赛的说明。需要注意的是一般先要把项目数据用SQL复制到自己的空间中,然后再进行下一步操作。详见“代码分享”部分。 复制到自己空间后,就可以在“数据管理”->“个人帐号的表”中查看表信息了。

(3) 如何写程序和运行?

 进入“数据开发平台”,点击上方的“数据开发”,在左侧的任务开发树中可以创建程序。这里提供了SQL,Shell,Python等工具。并支持目录结构。

(4) 数加平台能否使用Python?

 能否使用pandas的DataFrame? 之前听说数加平台只能用SQL+Java,于是很多人都重新学习工具,占用了大部分时间,美年初赛时大多数人使用的都是Python,也希望在复赛中使用初赛代码。那么数加平台能否使用Python呢?
 不同比赛提供的工具不同,美年复赛可以使用Python,具体方法是右键点“任务开发”,“新建任务”,在类型中选择PYODPS即可编写Python程序。 PYODPS帮助文档见:http://pyodps.readthedocs.io/zh_CN/latest/index.html

(5) ODPS是什么?

 ODPS(Open Data Processing Service),是阿里巴巴通用计算平台提供数据仓库解决方案.

(6) 线上Python如何访问数据表

 从PYODPS帮助文档中看到,可以通过o访问数据表,而o通过以下方式获得:

from odps import ODPS
o=ODPS('**your-access-id**', '**your-secret-access-key**', '**your-default-project**', endpoint='**your-end-point**') 

 大家花了很多时间找access-key, access-secret,在个人信息中看到access-key不对子用户开放,然后我们就以为python不能用了,悲剧了。
 其实在数加线上,o不用赋值就可以直接使用,access-key和access-secret是针对离线运行PYODPS的。希望官方在文档或者赛题中明确写一下(真心地没想到o可以直接使用)。
 读写数据及odps与dataframe转换,详见“代码分享”部分。

(7) 在何处提交结果

 题目提供的表中有测试集a:meinian_round2_submit_a,把答案写入用户空间的该表中,系统则会在评测时间自动对该表内容评测。因此,复制库成功后,表的内容为全0,评测时就有了成绩,得分约为9.1781,很低的分数。

3. 代码分享

(功能基本实现,代码还待优化,仅供参考)

(1) 把数据复制到本地

 数据开发->任务开发->新建任务->ODPS SQL 写以下SQL语句,并运行(一共5个表,都用此方法复制)

create table if not exists meinian_round2_data_part1 as select * from odps_tc_257100_f673506e024.meinian_round2_data_part1;

(2) 其它常用SQL语句

 查看已有的表
 show tables;
 查看表内容
 select * from meinian_round2_data_part1;
 看表中有多少条数据
 select count(*) from meinian_round2_data_part1;

(3) 将ODPS转成pandas的DataFrame

from odps import ODPS
from odps.df import DataFrame
submit_basedata = DataFrame(o.get_table('meinian_round2_submit_a'))
submit_data = submit_basedata.to_pandas()
print("total", len(submit_data)) 

(4) 存储ODPS数据

 这个我写了还没等到评测,不一定对,仅供参考。 具体功能是把训练集的均值作为预测值,因为不太会用writer,直接调用总是追加数据,只好在每次添加之前删表又重建,此处有待优化。

import numpy as np
from odps import ODPS
from odps.df import DataFrame
from odps.models import Schema

train_basedata = DataFrame(o.get_table('meinian_round2_train'))
train_data = train_basedata.to_pandas()

submit_basedata = DataFrame(o.get_table('meinian_round2_submit_a'))
submit_data = submit_basedata.to_pandas()
submit_data['sys'] = train_data['sys'].mean()
submit_data['dia'] = train_data['dia'].mean()
submit_data['tl'] = train_data['tl'].mean()
submit_data['hdl'] = train_data['hdl'].mean()
submit_data['ldl'] = train_data['ldl'].mean()

table_name = 'test'
odps.delete_table(table_name, if_exists=True)
odps.create_table(table_name,
 'vid string, sys bigint, dia bigint, tl double, hdl double, ldl double')
t = odps.get_table(table_name)

with t.open_writer() as writer:
 outdata = np.array(submit_data).tolist()
 writer.write(outdata)
 print("outdata length", len(outdata))
 writer.close()

print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
print(train_data.mean())
print(submit_data.mean())

4. 基本步骤

(1) 把数据表复制到自己的用空间
(2) 将pyodps转成pandas的dataframe
(3) 数据处理和挖掘
(4) 将dataframe结果转回pyodps能识别的格式存盘。

 我也刚开始做,觉得来好像这样转换一下,初赛的代码大部分就可用了。其它还没试,先这样吧,有空再写,祝师兄们马到成功 !!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容