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

简介:
本文来自AI新媒体量子位(QbitAI)


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

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

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

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

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

让数据说话

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

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

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

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

学会辨识更优的模型

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

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

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

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

对你的结论保持怀疑

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

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

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

搭建多个模型以便筛选

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

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

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

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

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

无畏于改变

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

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

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

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

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

“从小处做起”

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

“从大处落笔”

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

专业知识仍然很重要

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

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

编程能力仍然很重要

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

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

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

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

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

本文作者:王瀚宸
原文发布时间:2017-09-24
相关文章
|
8天前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
34 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
模型训练数据-MinerU一款Pdf转Markdown软件
MinerU是由上海人工智能实验室OpenDataLab团队开发的开源智能数据提取工具,专长于复杂PDF文档的高效解析与提取。它能够将含有图片、公式、表格等多模态内容的PDF文档转化为Markdown格式,同时支持从网页和电子书中提取内容,显著提升了AI语料准备的效率。MinerU具备高精度的PDF模型解析工具链,能自动识别乱码,保留文档结构,并将公式转换为LaTeX格式,广泛适用于学术、财务、法律等领域。
95 4
|
27天前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
1月前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
32 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
39 2
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
35 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
39 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
71 3
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
27 1
下一篇
DataWorks