初试微软机器学习:建立简易CAD/CNY汇率预测模型

azureml.jpg

Machine Learning:

Machine learning is programming computers to optimize a performance criterion using example data or past experience. (Alpaydin, 2004)

CAD/CNY汇率预测模型——实现步骤

  1. 收集整理样本
  2. 设计试验逻辑链
  3. 设计预测试验逻辑链
  4. 运行&误差评估
  5. 部署Web服务,获取API
  6. 生成Excel插件、网站等

初次试验,非计算机或统计专业,若有错误欢迎指正!

创建一个实验

打开 https://studio.azureml.net 使用自己的微软账号登录。

ml1.png

这就是Azure ML Studio的基本界面。

点击左下角的New,选择新建一个Blank Experiment。

ml2.png

出现可视化编程的界面,在左侧你可以选择各种分析算法或操作流程,以拖拽方式拖到中间的舞台。右侧可以调整你所选算法的配置。

准备样本数据

在本文中,我们通过以下的数据列,来预测CAD/CNY的汇率。

  • Global Price Of WTI Crude
  • Canada Gross Domestic Product
  • U.S. Real Gross Domestic Product
  • U.S. Real Interest Rate
  • Canada CPI All Items
  • Canada CPI All Items Excluding Food And Energy
  • Canada Total Retail Trade
  • Canada Harmonized Unemployment Rate (All Person)
  • Canada Production Of Total Industry
  • Canada Real Interest Rate
  • China Constant Price GDP Growth
  • China Current Price GDP
  • China CPI All Items
  • China Real Interest Rate

选取数据跨度为1980年至2017年,共7055个数据组。

ml3.png

在Excel中用vlookup或其他方法将数据整理好,存为csv逗号分隔文件。首行必须为该列的数据名称。

ml4.png

样本导入

让我们回到ML Studio,选择Dataset界面,点击左下角的New导入刚才整理好的csv文件。

ml5.png

设计逻辑链

然后回到刚才我们创建的Experiment。

基本思路:

  1. 拉取csv文件数据
  2. 选择你需要用到的数据列
  3. 删除空值数据
  4. 分配machine learning的数据比例
  5. 选择linear regression算法
  6. 选择你要预测的数据列,这里为CAD_CNY汇率
  7. 机器学习阶段
  8. 将预测所得的CAD汇率与实际汇率比对
  9. 评估预测结果的accuracy, precision等

按照下图排列逻辑链:

ml6.png

参数调整:

点击Select Columns in Dataset,在右侧边栏中,点击Launch column selector,以by name方式选择所有列。

Split data中,选择80%的数据用于机器学习,并键入随机数作为seed。

ml7.png

在train module中同样运行Launch column selector,以with rules方式include CAD_CNY(需要预测的列)。

ml8.png

运行

准备就绪后,点击下面的RUN,开始运行。

如果设置正确,在相应模块右边会有勾勾,如果有错误,则显示红色符号,点进去可以看到问题出在哪。

评估

点击Score model下面的Visualize,比对CAD预测与真实值。把表格拉到最右边,Scored Labels则为预测出的结果。

ml9.png

点击Evaluation model下面的Visualize,查看预测评估。

ml10.png

建立Web服务

在Predictive experiment中,将web input & output 置于score model前后。

由于需要输入除了CAD_CNY之外的数据,则应在input之后建立一个select column的过滤,规则为exclude CAD_CNY。同样在output之前也设立一个过滤,选择出需要显示的数据:include CAD_CNY。

完成后,点击下方Deploy web service。找到自己生成的web服务:

ml11.png

点Test,测试输入数据。

ml12.png

假设输入的数据都为0,如果程序正常,则会输出:

’CAD-CNY Prediction [Predictive Exp.]’ test returned ["0","0","0","0","0","0","0","0","0","0","0","0","0","0","-7.35927366100814"]…

生成Excel

点击APP中的Excel生成,可以在Excel文件中调取云端的学习模块,输入输出数据。加载项仅能在Windows的Office上运行。

Web App API

如果你要做一个网站,并调取ML模块,应该怎么做呢?Azure的New Web Services Experience给了我们这样的选择。点击New Web Services Experience,选择Consume,Create Web App,会自动跳转到新建Azure云服务的界面。或者通过该网址进入:https://azure.microsoft.com/zh-cn/marketplace/partners/microsoft/azuremlaspnettemplateforrrs/

如果你不想用Azure,当然也可以用其他的支持aspx语言的空间,在Github找到该开源模板。

在刚才ML Studio的网络服务界面,点击REQUEST/RESPONSE,可以看到连接API的说明文档,包括POST URL、APIKEY等。

以下是我生成的Web App(http://cadpredictor.azurewebsites.net/),用户可以调整各参数后提交,预测在此情况下的汇率。

ml13.png

发表新评论