作家
登录

利用一点机器学习来加速你的网站

作者: 来源: 2017-04-14 09:17:25 阅读 我要评论

在生活中,我有 73% 的时光在推敲 web 机能-在低鼓掌机上达到 60 FPS、 有序加载资本、离线缓存任何能缓存的资本。还有一些其他的优化。

比来,我发明本身对 web 机能的定义可能太狭隘了,大年夜用户的角度上来说,这些只是 web 机能中的一些小插曲。

所以我打开了我经常去的网站,测验测验了所有的用户可能的操作,并记录操作所花费的时光。(我们须要一些用户操作时光轴对象)

之后,我发清楚明了一个可行的晋升机能的筹划。

下面的文┞仿内容聚焦在某个具体网站的具体操作步调。然则我认为这个解决筹划(嗯,没错!就是机械进修)可以应用到很多其他类型的网站上去。

这个网站,用于卖家出售没用的器械,买家经由过程购买这些器械来淘一些有价值的器械。

当卖扼要在网站上出售器械时刻,要先选择分类, 再选择对应的模版,然后填写细节信息,预览,最后宣布。

然而第一步 — 选择分类 — 就把我带进了一条弯路

起首,一共有674个类别,我根本不知道我你破旧的皮划艇属于哪个类别( Steve Krug 说的好, 不要让用户去思虑 )

第二步,即使我知道商品所属的类别 — 子类别 — 子子类别,我也要至少花费12秒的时光。

如不雅我跟你说,我能把你的页面的加载时光削减12秒,你必定认为我疯了。那么为什么不在一些其余处所来节约这12秒呢。

正如凯撒大年夜帝所说,时光很宝贵的呢。

我一向认为用户蒙昧是福。我如不雅把商品的标题、描述、价格放到机械进修的模型琅绫擎,体系应当能主动计算出商品所属的分类。

机械进修-你不该回避它,你要却竽暌沟抱它

一开端的时刻,我对机械进修一点概念都没有。我是在游戏 AI ,以及 Alpha 狗克服仁攀类顶级围棋棋手之后才有所懂得的。

是以我计算开端去懂得它,下面的几步一个小时都不须要。

  1. Google 搜刮 'machine learning'
  2. 查看大年夜量的关于机械进修的文┞仿
  3. 发清楚明了亚马逊宣布的 机械进修 相干的办事
  4. 我开端意识到我不须要知道太多的关于机械进修的器械
  5. 嗯。好高兴

应用一点机械进修来加快你的网站

一个简单的实现流程

亚马逊宣布了他的机械进修文档 。如不雅你不是对这个文档很感兴趣,计算花5个小时去浏览,那么就来看下我写的一些总结吧。

整顿如下:

  • 获取一些 CSV 数据文件,每行都是一个商品项(^_^我的皮划艇),列名是标题、描述、价格、所属分类。
  • 把数据传送到亚马逊的 AWS S3 bucket 琅绫擎
  • 用数据去练习机械。如许子,这个小小云机械人就能经由过程商品的标题,描述和价格去猜测他的分类了。
  • 在前端页面上,写一些代码,获取用户输入的 标题/描述/价格,发给这个云机械人,经由计算,就能向猜测这个商品所属的分类了。

拭魅战模仿

下面的结不雅必定会让你对机械进修保持兴趣。你只要信赖我,建议类别是由深度进修模仿猜测出来的。

让我们去卖一个冰箱

应用一点机械进修来加快你的网站

再来试一下卖个水族馆:

这个云机械人居然能辨认出水族馆!

当我看到这个结不雅的时刻棘手舞足蹈,是不是棒棒哒?

(我悄悄的告诉你我是怎么实现的:React, Redux, JQuery, Mox, RxJs, BlueBird, Bootstrap, Sass, Compass, NodeJs, Express, Loadsh。项目是应用 webpack 打包。最后生成的文件在1M阁下)

嗯。不 BB 了。开端讲正经事。

一开端为了拿到机械学惯用的数据。我也是想破了头。我大年夜概须要10K条数据。后来是在一个本地的交易网站膳绫擎发明有这些数据。看了一下 URL 和 DOM 构造之后,我用 Google Scraper 插件提取了一些数据。导出成 CSV 文件。在这些数据上我大年夜概花费了四个小时。将近全部项目时光的一半了。

数据整顿好之后,上传到了 Amazon S3 上,设备了一下机械进修的参数,设置了数据模型。全部进修的 CPU 耗时才3分钟。

界面上还有一个及时猜测功能,所以我计算用一些参数测试一下。

应用一点机械进修来加快你的网站

为了不在浏览器琅绫擎裸露出我的 Amazon API ,所以我把 API 放到了 Node 办事器上。

后台代码(Node)

应用方法很简单。接口参数为 modelId, 办事器返回一个 prediction :

  1. const AWS = require('aws-sdk');  
  2. const machineLearning = new AWS.MachineLearning();  
  3. const params = {  
  4. MLModelId: 'some-model-id' 
  5. PredictEndpoint: 'some-endpoint' 
  6. Record: {}, 

      推荐阅读

      浅谈图片宽度自适应解决方案

    在网页设计中,跟着响应式设计的到来,各类响应式设计筹划层出不穷。对于图片响应式的问题也有很多前端开辟人员在进行研究。比较好的图片响应式假想就是在不合的屏幕分辨率下应用不合实际>>>详细阅读


    本文标题:利用一点机器学习来加速你的网站

    地址:http://www.17bianji.com/lsqh/34767.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)