<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 學習機器學習的向量量化 > 原文: [https://machinelearningmastery.com/learning-vector-quantization-for-machine-learning/](https://machinelearningmastery.com/learning-vector-quantization-for-machine-learning/) K-Nearest Neighbors的缺點是你需要堅持整個訓練數據集。 學習向量量化算法(或簡稱LVQ)是一種人工神經網絡算法,可讓您選擇要掛起的訓練實例數,并準確了解這些實例的外觀。 在這篇文章中,您將發現學習向量量化算法。閱讀這篇文章后你會知道: * 實際保存到文件的LVQ算法使用的表示形式。 * 可用于使用已學習的LVQ模型進行預測的過程。 * 如何從訓練數據中學習LVQ模型。 * 用于從LVQ算法獲得最佳表現的數據準備。 * 在哪里可以找到有關LVQ的更多信息。 這篇文章是為開發人員編寫的,并沒有統計或數學方面的背景。該文章重點介紹了算法的工作原理以及如何將其用于預測建模問題。 如果您對LVQ有任何疑問,請發表評論,我會盡力回答。 讓我們開始吧。 ![Learning Vector Quantization for Machine Learning](img/128726af4ffca05f1009aa49f39525e8.jpg) 學習機器學習的向量量化 攝影: [Holly Victoria Norval](https://www.flickr.com/photos/hollystar47/20282213340) ,保留一些權利。 ## LVQ模型表示 LVQ的表示是碼本向量的集合。 LVQ已經開發出來并且最好被理解為分類算法。它支持二進制(兩類)和多類分類問題。 碼本向量是與訓練數據具有相同輸入和輸出屬性的數字列表。例如,如果您的問題是類0和1的二元分類,以及輸入寬度,長度高度,那么代碼簿向量將包含所有四個屬性:寬度,長度,高度和類。 模型表示是從訓練數據中學習的固定的碼本向量池。它們看起來像訓練實例,但每個屬性的值都是根據學習過程進行調整的。 在神經網絡的語言中,每個碼本向量可以被稱為神經元,碼本向量上的每個屬性被稱為權重,并且碼本向量的集合被稱為網絡。 ## 獲取免費算法思維導圖 ![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg) 方便的機器學習算法思維導圖的樣本。 我已經創建了一個由類型組織的60多種算法的方便思維導圖。 下載,打印并使用它。 ## 使用LVQ模型進行預測 使用LVQ碼本向量以與K-Nearest Neighbors相同的方式進行預測。 通過搜索K個最相似的實例的所有碼本向量并總結那些K個實例的輸出變量,對新實例(x)進行預測。對于分類,這是模式(或最常見)類值。 通常,預測是在K = 1的情況下進行的,匹配的碼本向量稱為最佳匹配單元(BMU)。 為了確定訓練數據集中的哪個K實例與新輸入最相似,使用距離度量。對于實值輸入變量,最流行的距離測量是歐幾里德距離。歐幾里德距離被計算為每個屬性j的新點(x)和現有點(xi)之間的平方差之和的平方根。 EuclideanDistance(x,xi)= sqrt(sum((xj - xij)^ 2)) ## 從數據中學習LVQ模型 LVQ算法從訓練數據中學習碼本向量。 您必須選擇要使用的碼本向量數,例如20或40.您可以通過測試訓練數據集上的不同配置找到要使用的最佳碼本向量數。 學習算法以隨機碼本向量池開始。這些可以是來自訓練數據的隨機選擇的實例,或者是與訓練數據具有相同比例的隨機生成的向量。碼本向量具有與訓練數據相同數量的輸入屬性。它們還有一個輸出類變量。 訓練數據集中的實例一次處理一個。對于給定的訓練實例,從池中選擇最相似的碼本向量。 如果碼本向量具有與訓練實例相同的輸出,則碼本向量移動到更接近訓練實例。如果不匹配,則會進一步移動。向量移動的量由稱為learning_rate的算法參數控制。 例如,如果類匹配如下,則將碼本向量的輸入變量(x)移動到更接近訓練輸入值(t)的學習量中的量: x = x + learning_rate *(t - x) 將碼本變量的輸入變量從訓練實例移開的相反情況計算如下: x = x - learning_rate *(t - x) 這將針對每個輸入變量重復。 因為選擇一個碼本向量用于每個訓練實例的修改,所以該算法被稱為[贏者通吃](https://en.wikipedia.org/wiki/Winner-take-all_(computing))算法或一種[競爭學習](https://en.wikipedia.org/wiki/Competitive_learning)。 對訓練數據集中的每個實例重復此過程。訓練數據集的一次迭代稱為迭代。該過程已完成您必須選擇的多個時期(max_epoch),例如200。 您還必須選擇初始學習率(例如alpha = 0.3)。學習率隨著時期而減少,從您在時期1指定的大值開始,這對于碼本向量進行最大的改變并且在最后一個時期以接近零的小值結束,從而對碼本向量進行非常小的改變。 每個時期的學習率計算如下: learning_rate = alpha *(1 - (epoch / max_epoch)) 其中learning_rate是當前時期(0到max_epoch-1)的學習率,alpha是在訓練開始時為算法指定的學習率,而max_epoch是運行算法的時期總數,也是在跑步的開始。 學習過程的直覺是,碼本向量池是將訓練數據集壓縮到最能表征類別分離的點。 ## LVQ的數據準備 一般來說,為LVQ準備數據是一個好主意,就像為K-Nearest Neighbors準備數據一樣。 * **分類**:LVQ是一種分類算法,適用于二進制(兩類)和多類分類算法。該技術已適用于回歸。 * **多次通過**:LVQ的良好技術涉及在碼本向量上執行訓練數據集的多次傳遞(例如,多次學習運行)。第一個具有較高學習率來解決池碼本向量,第二個以較小的學習率來微調向量。 * **多個最佳匹配**:LVQ的擴展選擇多個最佳匹配單元以在學習期間進行修改,例如分別針對和遠離訓練樣本繪制的相同類和不同類之一。其他擴展使用每個碼本向量的自定義學習率。這些擴展可以改善學習過程。 * **歸一化輸入**:傳統上,輸入被歸一化(重新縮放)到0到1之間的值。這是為了避免一個屬性支配距離測量。如果輸入數據被歸一化,則可以選擇碼本向量的初始值作為0和1之間的隨機值。 * **特征選擇**:可以減少輸入變量維數的特征選擇可以提高方法的準確性。 LVQ在作為K-Nearest Neighbors進行預測時遭受同樣的維度詛咒。 ## 進一步閱讀 該技術由Kohonen開發,他編寫了關于LVQ的開創性書籍和姐妹方法Self-Organizing Maps,名為:[自組織地圖](http://www.amazon.com/dp/3540679219?tag=inspiredalgor-20)。 [![Amazon Image](img/741e0a605620af7a68b5e096dd05139b.jpg)](http://www.amazon.com/dp/3540679219?tag=inspiredalgor-20) 如果您對LVQ感興趣,我強烈推薦這本書。 * 維基百科上的[學習向量量化](https://en.wikipedia.org/wiki/Learning_vector_quantization)。 * [學習向量量化](http://www.cleveralgorithms.com/nature-inspired/neural/lvq.html)章節來自我的書“自然啟發算法”。 * [LVQ_PAK](http://www.cis.hut.fi/research/lvq_pak/) 由Kohonen負責LVQ的官方軟件實現。 * [LVQ作為WEKA](http://wekaclassalgos.sourceforge.net/) (我多年前創建)的插件。 ## 摘要 在這篇文章中,您發現了LVQ算法。你了解到: * LVQ的表示是一小部分碼本向量,小于訓練數據集。 * 碼本向量用于使用與K-Nearest Neighbors相同的技術進行預測。 * 碼本向量是從訓練數據集中學習的,當它們匹配良好時將它們移近,當它們是不匹配時將它們移開。 * 碼本向量是訓練數據的壓縮,以最好地分離類。 * 傳統上,數據準備涉及將輸入值標準化為0到1之間的范圍。 您對此帖子或LVQ算法有任何疑問嗎?發表評論并提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看