教你学Python42-了解机器学习算法的5种方法(无数学)
自上而下的学习机器学习方法的理论在哪里?
在传统的机器学习教学方法中,理论首先出现,要求具备广泛的数学背景才能理解它。在教授机器学习的方法中,我首先教您如何端到端解决问题并交付结果。
那么理论在哪里适合呢?
在这篇文章中,您会发现当我们谈论机器学习中的“理论”时,我们真正的意思是。提示:全部与算法有关。
您会发现,一旦您精通解决问题和交付结果的技巧,便会发展出更强的潜意识,以便更好地理解和取得结果。没有人能够阻止你。
最后,您将发现在标准数据集上进行机器学习时可以使用的5种技术,以逐步增强对机器学习算法的理解。
在我的新书中(包括22个excel教程和示例),了解机器学习算法如何工作,包括kNN,决策树,朴素贝叶斯,SVM,集成等。
如何学习机器学习没有数学
最后而不是先学理论
向开发人员教授机器学习的方式很糟糕。
它是自下而上的。如果您是主要对使用机器学习作为解决问题的工具而不是该领域的研究人员感兴趣的开发人员,那么这很废话。
传统方法要求您在学习算法理论之前先学习所有必备数学,例如线性代数,概率和统计。如果您临近算法的可行实现或讨论如何端对端解决问题并提供有效,可靠和准确的预测模型,那么您将很幸运。
我教一种自顶向下的方法来学习机器学习。在这种方法中,我们首先进行以下工作:1)学习用于端对端解决问题的系统过程,2)将过程映射到“同类最佳”的机器学习工具和平台上,然后3)在测试数据集上完成有针对性的练习。
您可以在“ 程序员的机器学习:从开发人员到机器学习从业者的跨越 ”一文中了解有关我自上而下的机器学习教学方法的更多信息。
那么理论在这个过程中适合什么地方?
如果模型被翻转,则稍后将讲授理论。但是,我们在谈论什么理论?在测试数据集上进行练习时,您如何准确地学习该理论?
获取免费的算法思维导图
方便的机器学习算法思维导图的样本。
我已经创建了一个方便的思维导图,其中包含按类型组织的60多种算法。
该理论实际上与算法有关
机器学习领域是理论密集的。
之所以密集,是因为有一种数学上描述和解释概念的传统。
这很有用,因为数学描述非常简洁,从而减少了歧义。他们还通过利用描述它们的上下文中的技术(例如对过程的概率理解)来进行分析。
许多这些切线数学技术通常与机器学习算法的描述捆绑在一起。对于只想对一种方法进行肤浅理解以能够配置和应用该方法的人来说,这让人感到不知所措。令人沮丧的是。
如果您没有足够的基础来解析和理解算法的描述,那将令人沮丧。令人沮丧的是,算法一直来自计算机科学等领域,但是它们的描述只是为了快速理解(例如用于桌面检查)和实现。
我们知道,例如,当了解什么是哈希表以及如何使用它时,我们几乎永远不需要知道哈希函数的具体细节。但是我们也知道哈希函数是什么,以及在何处可以进一步了解哈希函数的详细信息以及如何编写自己的哈希函数。为什么机器学习不能那样工作?
机器学习中遇到的大部分“理论”都与机器学习算法有关。如果您向任何初学者询问为什么他们对理论感到沮丧,那么您会发现这与学习如何理解或使用特定的机器学习算法有关。
在这里,算法比用于创建预测模型的过程更为广泛。它还涉及用于选择特征,设计新特征,转换数据以及根据看不见的数据估计模型准确性的算法(例如,交叉验证)。
因此,学习理论的最后,实际上意味着要学习机器学习算法。
潜入理论的强迫
我通常建议对知名的机器学习数据集进行有针对性的练习。
这是因为众所周知的机器学习数据集(如UCI机器学习存储库中的数据集)易于使用。它们很小,因此适合内存,可以在您的工作站上进行处理。他们也经过充分研究和理解,因此您有一个比较基准。
您可以在“ UCI机器学习存储库中的小型内存数据集练习机器学习 ”一文中了解有关目标机器学习数据集的更多信息。
了解机器学习算法适合此过程。原因在于追求在标准机器学习算法上获得结果会遇到限制。您将想知道如何从给定的算法中获得更多收益,或者更多地了解如何最佳配置它,或者它如何实际工作。
这需要更多的知识和好奇心,将带您进入机器学习算法的理论研究领域。您将被迫拼凑对算法的理解,以获得更好的结果。
我们在不同背景的年轻开发人员中看到了相同的效果,最终他们最终研究了开源项目,教科书甚至研究论文的代码,以磨练他们的技能。对成为一个更好的,更有能力的程序员的需求驱使他们走向它。
如果您好奇并且有成功的动力,那么您就无法拒绝学习该理论。
了解机器学习算法的5种技术
现在是时候专注于机器学习算法了,这是您有针对性的练习的一部分
到那时,您可以使用许多技术和模板来简化该过程。
在本部分中,您将发现5种可用于快速理解机器学习算法理论的技术。
1)创建机器学习算法列表
当您刚入门时,可能会被大量可用算法感到不知所措。
即使是现场测试算法,您也可能不确定要在混音中包括哪些算法(提示,要多样化)。
入门时可以使用的一个绝妙技巧是跟踪所阅读的算法。这些列表可以与算法名称一样简单,并且随着您的兴趣和好奇心的增加,其复杂性也会增加。
捕获详细信息,例如它们适合的问题类型(分类或回归),相关算法和分类类(决策树,内核等)。当您看到新的算法名称时,将其添加到列表中。当您开始一个新问题时,请尝试一些以前从未使用过的算法。标记您以前使用过的算法旁边的复选框。等等。
控制列表中算法的名称可以增强功能。这种可笑的简单策略可以帮助您超越压力。简单的算法列表可以为您节省很多时间和沮丧的位置的示例如下:
-
尝试新的和不同的问题类型(时间序列,评分系统等)的算法思想
-
您可以研究算法,以了解有关如何应用的更多信息。
-
按类别(树,内核等)获取有关算法类型的句柄。
-
避免固定在最喜欢的算法上的问题。
首先创建算法列表,打开电子表格并开始使用。
有关此策略的更多信息,请参见“ 通过创建机器学习算法的目标列表进行控制 ”。
2)研究机器学习算法
当您想进一步了解机器学习算法时,需要对其进行研究。
您对算法感兴趣的主要原因是学习如何配置算法以及如何工作。
研究不仅针对学者。一些简单的技巧可以帮助您在给定的机器学习算法上收集信息。
关键是信息源的多样性。以下是可以查询的源类型的简短列表,以获取有关正在研究的算法的信息。
-
权威资源,例如教科书,讲义,幻灯片和概述文件。
-
开创性的资源,例如首次描述该算法的论文和文章。
-
描述该算法的最新扩展和实验的前沿资源。
-
启发式资源,例如来自机器学习竞赛,问答网站和会议论文上的资源。
-
实施源,例如工具和库的开放源代码,博客文章和技术报告。
您无需成为博士学位研究人员或机器学习算法专家。
花点时间,挑选许多要收集的关于机器学习算法事实的资源。着重于您可以应用或理解的实际细节,其余的请保留。
有关研究机器学习算法的更多信息,请参阅“ 如何研究机器学习算法 ”一文。
3)创建您自己的算法说明
您在研究中发现的机器学习算法描述将是不完整和不一致的。
您可以使用的一种方法是将自己的迷你算法描述放在一起。这是另一种非常简单且功能强大的策略。
您可以设计一个标准算法描述模板,其中仅包含那些对您有最大帮助的细节,例如,算法使用启发式方法,伪代码列表,参数范围和资源列表,这些细节对于从算法中获取最大收益非常有用。
然后,您可以在多个关键算法中使用相同的算法描述模板,并开始建立自己的小算法百科全书,以供将来的项目参考。
您可能想在自己的算法描述模板中使用的一些问题包括:
-
该算法使用的标准缩写是什么?
-
该算法的目的是什么?
-
该算法的伪代码或流程图描述是什么?
-
使用该算法的启发法或经验法则是什么?
-
有哪些有用的资源可用于进一步了解算法?
您会惊讶于这些描述的实用性和实用性。例如,我使用这种方法编写了一本自然启发式的算法描述书,直到几年后我仍然引用它。
有关如何创建有效的算法描述模板的更多信息,请参见“ 如何学习机器学习算法 ”一文。
有关使用标准算法描述模板描述的算法书的更多信息,请参见“ 聪明的算法:自然启发性编程食谱 ”。
4)研究算法行为
机器学习算法是复杂的系统,有时可以通过其在实际数据集中的行为来最好地理解。
通过使用较小的数据集在机器学习算法上进行小型实验,您可以学到很多关于算法的工作原理,局限性以及如何以可能在其他问题上转换为特殊结果的方式进行配置。
您可以用来研究机器学习算法的简单过程如下:
-
选择您想了解更多的算法(例如,随机森林)。
-
确定有关您想回答的算法的问题(例如,树数的影响)。
-
设计一个实验以找到该问题的答案(例如,在一些二进制分类问题上尝试使用不同数量的树,并以分类精度绘制关系图)。
-
执行实验并写下您的结果,以便将来使用。
-
重复该过程。
这是应用机器学习真正令人兴奋的方面之一,通过您自己的简单研究,您可以获得令人惊讶的最新技术成果。
有关如何从算法行为中研究算法的更多信息,请参见“ 如何调查机器学习算法行为 ”一文。
5)实现机器学习算法
借助机器学习算法,您无法比实现它更贴心。
从头开始实施机器学习算法时,您将面临给定实现中无数的微观决策。您可能决定用一些经验法则来掩盖一些内容,将它们作为参数公开给用户。
以下是可重复的过程,可用于从头开始实施机器学习算法。
-
选择一种编程语言,您最熟悉的一种可能是最好的。
-
选择一个要实现的算法,从简单的事情开始(请参见下面的列表)。
-
选择一个问题以在开发时测试实现,二维数据非常适合可视化(即使在Excel中)。
-
研究算法并利用多种信息源(例如,阅读教程,论文,其他实现等)。
-
对算法进行单元测试,以确认您的理解并验证实现。
从小处着手,树立信心。
例如,从头开始选择作为第一个机器学习算法实现的3种算法是:
-
使用梯度下降的线性回归
-
k最近邻居(请参阅我的Python教程)
-
朴素贝叶斯(请参阅我的Python教程)
有关如何实现机器学习算法的更多信息,请参阅“ 如何实现机器学习算法 ”一文。
另请参阅帖子:
-
“ 从零开始实施机器学习算法的好处 ”
理论不仅仅适合数学家
机器学习不仅适合数学精英。您可以了解机器学习算法的工作原理,以及如何从中获得最大收益,而无需深入研究多元统计数据。
您不需要精通数学。
正如我们在“技术”部分所看到的,您可以从算法列表开始,然后更深入地过渡到算法研究,描述和算法行为。
使用这些方法,您可以走得很远,而不必完全投入数学。
您无需成为学术研究人员。
研究不仅针对学者。任何人都可以阅读书籍和论文,并汇编自己对某个主题的理解,例如特定的机器学习算法。
当您担当“ 科学家 ” 角色并开始尝试机器学习算法时,就将获得最大的突破,就好像它们是需要研究的复杂系统一样。您会发现甚至可能没有记录的行为中各种有趣的怪癖。
采取行动
选择上面列出的一种技术并开始使用。
我的意思是今天,现在。
不确定从哪里开始?
以下是您可以从哪里开始的5个好主意:
-
列出10种用于分类的机器算法(请参阅我的算法之旅以获取一些想法)。
-
找到五本书,对《随机森林》进行详细描述。
-
使用您自己的算法描述模板在朴素贝叶斯上创建五幅幻灯片。
-
打开Weka,在“鸢尾花”数据集上查看“ k”参数如何影响k近邻的准确性。
-
使用随机梯度下降实现线性回归。
喜欢点下关注,你的关注是我写作的最大支持