普通码农入门机器学习,必须掌握这些数据技能

其实,机器学习一直在解决着各种重要的问题。比如说90年代中期,人们已经开始用神经网络来扫描信用卡交易记录,从中找到欺诈行为;90年代末,Google把这项技术用到了网络搜索上。

但在那个时候,机器学习还和普通的工程师无缘。开发一个机器学习系统,需要读个PhD,还得找到一群想法类似、志同道合的朋友。

现在,机器学习终于更强大也更亲民了。

一个普通的软件工程师,不需要去专门回炉重造读个研究生,就能运用机器学习开发出非常不错的系统。

当然,普通的码农要用好机器学习,还得补一些课,学一些数据技能。InforWorld的这篇文章就讲述了一些技巧和策略,能够帮助开发者们更有效地使用机器学习。

让数据说话

在良好的软件工程实践过程中,你经常能通过推理得到所需的设计,写好软件部分,然后直接且独立地对这个解决方案进行检验。

有时候,你甚至能从数学上证明你软件是正确的。但这在实际问题中往往较难实现,尤其是要考虑人类参与的时候,但如果你有良好的规范,你仍可以执行一个正确的解决方案。

但机器学习不一样。大体上,你不需要一个严格的规范。你有了能表示系统以往经验的数据,然后需要的是建立一个能够在未来奏效的系统。

为了测试系统是否真的奏效,你需要在真实情况中评估它的表现。切换到这种“重数据,轻阐述”的开发模式会有很大阻力,但这是你构建机器学习系统的关键一步。

学会辨识更优的模型

比较两个数字的大小是很简单的事情。假设它们都是有效的值(不是非数字类型),你只需要判断哪个值更大,就结束了。

而在比较机器学习的准确性时,问题就不这么简单了。

你要比较的模型有大量的输出结果,而没有一个明确的答案。构建机器学习系统所需的一项非常基本的能力,就是通过观察两个模型之前制定的决策,决定哪个模型更符合你的问题情境。

做出这个判断,你需要将这些数据做整体考虑而不是某个单一的值。这通常也需要你能够很好地进行数据可视化,比如说使用柱状图,散点图和许多其他相关的数据表示方式。

对你的结论保持怀疑

与判断哪个模型更好一样,对你自己的结论保持怀疑同样很重要。

你的结果是否只是统计上的偶然,数据变多后就不再成立?在你评估后情况是否发生了变化,因此之前的决策是否仍有效?

搭建一个内嵌机器学习的系统意味着你需要时刻确认系统依然在做你一开始布置的任务。这种怀疑精神是在变化的现实情况中进行模糊比较所必须的品质。

搭建多个模型以便筛选

在软件行业有一句老话,你构建的第一版系统是注定要扔掉的。这句话的含义是,直到你实实在在搭建了一个有效的系统之后,你才能充分理解问题从而更好地搭建系统。所以你可以先通过构建一个版本来积累经验,随后把学到的经验应用到设计中,构建出实际的系统。

对于机器学习来说,情形相同乃至更甚。搭建一个系统来练手还不够,你要做好搭建数十上百个版本的准备。有些版本可能用的是不同的学习方式,或者只是不同的参数设置;另外一些版本则是对问题或者训练数据完全不同的重述。

举例来说,你可能会发现在你想预测的信号之外,还可以用其它的替代信号来训练模型。这样,你可能会有十倍于原始的数据来训练。或者你可以去尝试用另一种方式来重述问题,使其变得更易解决。

这个世界瞬息万变。比如说你搭建模型检测欺诈行为的时候,即便你已经搭建了一个成功的系统,仍需要在未来适时做出改变。因为骗子会识别出你的漏洞,从而改变它们的行为。你将会被迫采取新的对策。

所以为了取得成功,你需要搭建一系列用来丢弃的机器学习模型。不要寄希望于有一个永久适用的万能模型。

无畏于改变

开始你想用机器学习解决的问题情景通常是不对的,甚至可能大错特错。因此,可能会遇到根本无法训练的模型,或是收集不到用于训练的数据,又或者模型训练出的最优结果却价值有限。

重新审视这个问题,可能会使得一个简单的模型就具有很高的价值。

我曾经遇到过一个有关推荐商品的问题,哪怕用上一些高大上的技能,想获得一点微博的收益也很难。

但实际上,我们应该关注的高价值问题是优秀的商品何时上市。只要你知道了这个时间点,就有很多好商品可供选择,“推荐什么产品”这个问题就迎刃而解了。

重新定义问题,让整个项目更容易解决了。

“从小处做起”

将你的原始系统应用到一些简单情形或者是一个子问题上,是有很价值的。这会让你集中精力获得该问题领域的专业知识,并在搭建模型的过程中得到同伴的支持。

“从大处落笔”

确认你拥有足够多的训练数据。事实上,如果可能的话,你要收集10倍于本来预想中所需的数据量。

专业知识仍然很重要

在机器学习中,搞清楚一个模型怎样决策或预测是一件事,更重要的是搞清楚真正的问题在哪。

就这点而论,如果你已经拥有很多专业知识,那你更有可能提出恰当的问题,从而能够将机器学习用到一个可行的产品中。要正确判断哪里需要仔细检查,专业知识非常关键。

编程能力仍然很重要

有很多工具意图让你仅通过简单拖拽就完成搭建机器学习模型的过程。事实上,搭建机器学习系统的大部分工作跟机器学习或者模型毫无关系,而是在于收集数据以及搭建能够使用模型输出结果的系统。

于是,拥有良好的编程技能尤为重要。

尽管不同人在处理数据的代码上存在一些风格的差异,但彼此间要相互理解并不难。所以开发的能力在很多机器学习的问题中非常有用。

现在有很多工具和新兴技术,让几乎所有的软件工程师能够针对有趣的问题开发出相应的机器学习系统。基本的程序开发技能将会在这个搭建过程中非常有用,但在使用它们的时候你需要多多关注数据。

掌握这些新技能的最好方式,是从现在开始动手搭建一些有趣的东西。

原文链接

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

推荐阅读更多精彩内容