本以為自己的演算法已經初步達到了要求,沒想到再對先前演算法進行整合時,發現了乙個很大的漏洞,這也是導致在**y2時效果比其他演算法好得多的原因。改正後,發現**效能一下子就降低了將近20個百分點,真如五雷轟頂呀,不過既然發現了錯誤,才能找到改正的方向,看來做任何事情絕不能停滯於一點點的成績,正是因為y2較高的誤差,演算法才需要切實地進一步改進。
昨天下午,在開會的時候,認真地想了想演算法目前還存在的問題及自認為尚需改進的地方,現總結如下:
1、對上述程式中出現的漏洞,已解決,但是結果是誤差變大。
2、演算法一直以來就存在乙個警告,歸其原因,是因為擬合矩陣為病態矩陣的原因。如果變數是與另乙個變數完全冗餘,這個矩陣稱為病態矩陣,即矩陣不能求逆。例如,有乙個變數是其他三個變數之和,這個變數也存在於模型中,這個矩陣就是病態矩陣。矩陣a和b存在的微小擾動δa和δb,會引起方程組ax=b解的很大變化,則稱ax=b為病態方程組,稱矩陣a為病態矩陣解決方法:gs迭代和sor迭代,matlab中無自帶函式,必須自己寫
對付病態的線性方程組,可有如下途徑:
(1)增加計算機字長(即機器精度)。例如,若在pc機上用單精度和gauss主元消去法或lu分解,可求出直至以5階矩陣為係數矩陣的方程組ax=y的穩定近似解,而當高於5階時,上述演算法即失效;若採用雙精度計算,利用上述演算法對20到30階的方程組求解,仍能得到3位以上的有效數字。
(2)條件預優法,即:選擇乙個非奇異矩陣p,使得cond(pa)<
python遺傳演算法 Python 遺傳演算法實現
關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...
《Java遺傳演算法程式設計》 2 9 小結
在本章中,你已經學會了實現遺傳演算法的基本知識。本章開頭的偽 提供了乙個通用的概念模型,針對本書其餘部分所有要實現的遺傳演算法 每個遺傳演算法將初始化並評估種群,然後進入乙個迴圈,進行交叉 變異和再評估。僅當終止條件滿足時,才退出迴圈。在本章中,你建立了遺傳演算法的支援元件,尤其是individua...
遺傳演算法 python 簡書 遺傳演算法
優化的演算法有很多種,從最基本的梯度下降法到現在的一些啟發式演算法,如遺傳演算法 ga 差分演化演算法 de 粒子群演算法 pso 和人工蜂群演算法 abc 舉乙個例子,遺傳演算法和梯度下降 梯度下降和遺傳演算法都是優化演算法,而梯度下降只是其中最基礎的那乙個,它依靠梯度與方向導數的關係計算出最優值...