java blob转为图片_Alink在线学习(Online Learning)之Java示例【二】

Alink是基于Flink的机器学习算法平台,欢迎访问Alink的github获取下载链接及更多信息。

alibaba/Alink​github.com
f52223d75f1c0c14331b320de6c535ed.png

也欢迎加入钉钉群进行交流。

2d509364a869b83549c92d6a22f82697.png

前一篇文章链接:Alink在线学习(Online Learning)之Java示例【一】

首先,我们需要一个Java的工程,配置好相关环境。最简单的办法是使用Alink的example工程,下载Alink git的代码,并用Jave IDE打开项目,如下图所示,可以看到三个已经写好的示例:ALSExample, GBDTExample, KMeansExample.

ef62b20d32917d9e8e2b2aaa232a0f48.png

我们在com.alibaba.alink package下新建一个Java文件:

package 

本文的示例参考Alink的Python demo:

https://github.com/alibaba/Alink/blob/master/pyalink/ftrl_demo.ipynb​github.com

在网络广告中,点击率(CTR)是衡量广告效果的一个非常重要的指标。因此,点击预测系统在赞助搜索和实时竞价中具有重要的应用价值。该 Demo 使用 Ftrl 方法实时训练分类模型,并使用模型进行实时预测评估。

这里使用Kaggle比赛的CTR数据,链接为:https://www.kaggle.com/c/avazu-ctr-prediction/data 。由于是压缩数据,需要下载到本地,为了演示方便,我们直接使用oss上存储的一份采样数据。使用TextSourceBatchOp整行读取打印部分数据,脚本如下:

new TextSourceBatchOp()
    .setFilePath("http://alink-release.oss-cn-beijing.aliyuncs.com/data-files/avazu-small.csv")
    .firstN(10)
    .print();

运行结果为:

784907c9d6e2c66ca40262dbf8754298.png

我们看到每条数据包含多个数据项,是以逗号分隔。下面是各数据列的定义如下:

  • id: ad identifier
  • click: 0/1 for non-click/click
  • hour: format is YYMMDDHH, so 14091123 means 23:00 on Sept. 11, 2014 UTC.
  • C1 -- anonymized categorical variable
  • banner_pos
  • site_id
  • site_domain
  • site_category
  • app_id
  • app_domain
  • app_category
  • device_id
  • device_ip
  • device_model
  • device_type
  • device_conn_type
  • C14-C21 -- anonymized categorical variables

我们根据各列的定义,组装schemaStr如下:

String schemaStr
	= "id string, click string, dt string, C1 string, banner_pos int, site_id string, site_domain string, "
	+ "site_category string, app_id string, app_domain string, app_category string, device_id string, "
	+ "device_ip string, device_model string, device_type string, device_conn_type string, C14 int, C15 int, "
	+ "C16 int, C17 int, C18 int, C19 int, C20 int, C21 int";

有了schema的定义,我们可以通过CsvSourceBatchOp读取显示数据,脚本如下:

CsvSourceBatchOp trainBatchData = new CsvSourceBatchOp()
	.setFilePath("http://alink-release.oss-cn-beijing.aliyuncs.com/data-files/avazu-small.csv")
	.setSchemaStr(schemaStr);

trainBatchData.firstN(10).print();

结果显示如下:

767c8c0ad188ee9ba0465884f7e8525d.png

由于列数较多,我们不容易将数据与列名对应起来。为了更好的看数据,这里有一个小技巧,打印出来的文本数据及分隔换行符号,正好是MarkDown格式,可以将其复制粘贴到MarkDown编辑器,即可看到整齐的图片显示,如下图所示:

669ce213723b6bbe2d77fb6b1108d0c8.png

下一篇文章链接:Alink在线学习(Online Learning)之Java示例【三】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值