<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 為什么從零開始實現機器學習算法 > 原文: [https://machinelearningmastery.com/why-implement-a-machine-learning-algorithm-from-scratch/](https://machinelearningmastery.com/why-implement-a-machine-learning-algorithm-from-scratch/) 當現有API中提供了如此多的算法時,為什么要從頭開始實現機器學習算法? 這是一個很好的問題。在編寫第一行代碼之前必須考慮的問題。 在這篇文章中,您將發現這個問題的各種有趣甚至發人深省的答案。 這篇文章中的答案總結自Quora問題:“[當有許多高級API如tensorflow可用時,為什么需要手動實現機器學習算法?](https://www.quora.com/Why-is-there-a-need-to-manually-implement-machine-learning-algorithms-when-there-are-many-advanced-APIs-like-tensorflow-available) “。 ![Why Implement a Machine Learning Algorithm From Scratch](img/eb1a35be0f1f24f7f32e26c4fcfc220f.jpg) 為什么從頭開始實施機器學習算法 照片由 [psyberartist](https://www.flickr.com/photos/psyberartist/3518056742/) ,保留一些權利。 ## (重新)實現算法的兩個主要原因 我認為所有的答案都可以分解為兩個陣營: 1. **自學**,其中算法被實現為學習練習。 2. **操作要求**,其中實施了一種算法以滿足生產系統的需求。 ## 實施自學算法 [Charles Gee](http://qr.ae/RgpWsi) 從自學角度給出了很好的答案。他評論道: > ...假設我們沒有談論機器學習算法,而是談論排序算法。當然,許多數據結構都有一個排序函數,幾乎不需要編碼,但你真的會聘請一個無法做出反對的程序員嗎?選擇排序?插入排序?歸并排序?快速排序?二叉搜索樹? Charles描述了4種不同的用例,從頭開始實現機器學習算法是非常可取的: * 作為機器學習領域的初學者。 * 作為機器學習領域的研究員。 * 作為機器學習領域的老師。 * 作為這些機器學習算法的用戶。 ## 實現操作要求的算法 [Xavier Amatriain](http://qr.ae/RgpWnT) 在他的回答中關注這個話題。他評論道: > 首先我要說的是,我確實認為任何團隊都應該默認重新使用現有的實現。 ...但是,公司可能決定實施自己版本的ML算法的原因也很多。 Xavier列出了實現機器學習算法的5個理由,如下所示: * **表現**。對于特定用例,開源實現可能過于籠統且效率不高。 * **正確性**。對于特定用例(例如較大規模的數據集),開源實現中可能存在錯誤或限制。 * **編程語言**。實現可能僅限于特定的編程語言。 * **整合**。可能需要將算法實現集成到現有生產系統的基礎結構中。 * **許可**。選擇開源許可證可能會受到限制。 ## 摘要 在這篇文章中,您發現有兩個主要原因可能需要從頭開始實現算法。 1. 要了解有關算法如何用于自學的更多信息。 2. 自定義生產系統的算法實現。 ## 進一步閱讀 我已經多次發布了從頭開始實現機器學習算法的好處。 關于這個主題的進一步閱讀包括: * [從零開始實施機器學習算法的好處](http://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/) * [通過從零開始實施它們來理解機器學習算法(以及解決不良代碼的策略)](http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/) * [實現機器學習算法時不要從開源代碼開始](http://machinelearningmastery.com/dont-start-with-open-source-code-when-implementing-machine-learning-algorithms/) * [如何實現機器學習算法](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看