从零开始实现算法是我们之前讨论过的一种方法。 [是我的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")[小型项目方法论](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")中的项目类型之一。在此项目类型中,我建议您在实施之前执行自己的文献调查并首先研究算法的工作原理。
从零开始实现算法是我们之前讨论过的一种方法。 [是我的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")[小型项目方法论](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")中的项目类型之一。在此项目类型中,我建议您在实现之前执行自己的文献调查并首先研究算法的工作原理。
这进一步导致了算法描述模板,为[提供了一个如何有效地描述机器学习算法的工具](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm"),以便您深入理解它。
在[他的评论](http://www.reddit.com/r/MachineLearning/comments/2h94uj/implementing_machine_learning_algorithms/ckqrn1t)中,Edward建议初学者尽可能避免查看其他开源实现的源代码。他知道这与大多数建议相反([甚至是我自己的](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")),它确实引起了我的注意。
[![Implement a Machine Leaning Algorithm](img/fad376caf6ed09f82aae89068f0c3fc3.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/01/Implement-a-Machine-Leaning-Algorithm.jpg)
有关我使用的模板的更多信息,请查看帖子“[如何学习机器学习算法](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm")”。
看看我的[教程,在Python](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement k-Nearest Neighbors in Python From Scratch") 中从零开始实现k-最近邻居。
看看我的[教程,在Python](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement K 最近邻 in Python From Scratch") 中从零开始实现k-最近邻居。
您可能也对我的帖子“[如何实现机器学习算法](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")”感兴趣。
阅读,研究甚至[从多个应用和理论来源构建您自己的算法描述](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm")。
[从零开始实现算法](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement k-Nearest Neighbors in Python From Scratch"),以熟悉任何给定的算法实现必须使用的无数微决策。
[从零开始实现算法](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement K 最近邻 in Python From Scratch"),以熟悉任何给定的算法实现必须使用的无数微决策。
* 学习解决问题的逐步过程( [KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/"What is Data Mining and KDD") , [Crisp-DM](http://en.wikipedia.org/wiki/Cross_Industry_Standard_Process_for_Data_Mining) , [OSEMN](http://www.dataists.com/2010/09/a-taxonomy-of-data-science/) ,等等)。
* 学习一个现成的工具或工具链,让你重复这个过程(如 [WEKA](http://machinelearningmastery.com/how-to-run-your-first-classifier-in-weka/"How to Run Your First Classifier in Weka") , [scikit-learn](http://machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/"A Gentle Introduction to Scikit-Learn: A Python Machine Learning Library") 或 [R](http://machinelearningmastery.com/what-is-r/"What is R") )。
更深层次的涉及专业化。例如,您可以深入了解机器学习算法。你可以[研究它们](http://machinelearningmastery.com/how-to-study-machine-learning-algorithms/"How to Study Machine Learning Algorithms"),[制作列表](http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/"Take Control By Creating Targeted Lists of Machine Learning Algorithms"),[描述它们](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm")和[从零开始实现它们](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement k-Nearest Neighbors in Python From Scratch")。事实上,您可以潜水的深度没有限制,但您确实想要选择一个您觉得引人注目的区域。
更深层次的涉及专业化。例如,您可以深入了解机器学习算法。你可以[研究它们](http://machinelearningmastery.com/how-to-study-machine-learning-algorithms/"How to Study Machine Learning Algorithms"),[制作列表](http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/"Take Control By Creating Targeted Lists of Machine Learning Algorithms"),[描述它们](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm")和[从零开始实现它们](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/"Tutorial To Implement K 最近邻 in Python From Scratch")。事实上,您可以潜水的深度没有限制,但您确实想要选择一个您觉得引人注目的区域。
[![Reinvent Solutions to Common Problems](img/5b8e562971591f84858b54cef1484eca.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/01/Reinvent-Solutions-to-Common-Problems.jpg)
***不要指望第一次得到任何东西**。 David 建议从多个不同来源阅读相同方法的描述。这与我在[算法描述模板](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/"How to Learn a Machine Learning Algorithm")中提出的建议相同,我出于必要而提出。
***实施模型**。我同意 David 的观点,在你[自己实现它](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")并将其付诸实践之前,你无法完全理解这个模型。 David 建议将您的实现与其他实现进行比较,例如开源中的实现,并寻找并理解所使用的任何提高效率的数学或编程技巧。
***实现模型**。我同意 David 的观点,在你[自己实现它](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/"How to Implement a Machine Learning Algorithm")并将其付诸实践之前,你无法完全理解这个模型。 David 建议将您的实现与其他实现进行比较,例如开源中的实现,并寻找并理解所使用的任何提高效率的数学或编程技巧。