數據挖掘-理論與算法 公開課筆記

數據挖掘-理論與算法 公開課筆記

製作:紀元

本提綱遵循CC-BY-NC-SA協議

(署名-非商業性-相同方式共享)
最近更新時間:2020年3月4日01:48:00

在這裏插入圖片描述

文章目錄

10.2.1.1 Data Cleaning 數據清洗

數據在獲得時可能並不可用,缺數據,數據錯誤,噪音等問題都會導致程序無法運行。因此在處理之前要進行清洗等操作

對於缺失少量的數據,可以進行適當的推測,或者規則界定,或者直接填均值,這個方向主要由經驗主導。

離羣點和異常點是有區別的,要謹慎的區分兩者。

11.2.2.1 Outliers & Duplicate detection 異常值與重複檢測

異常是相對的,在計算異常值時要考慮相對性,可以嘗試與近鄰值相比較。

相同的信息可以用不同的形式來表示。而計算機可能無法識別這些重複。

我們可以嘗試使用滑動窗口,將某數據與部分之前的數據進行比(前提是相似的數據是緊鄰的)

12.2.3.1 Type conversion & sampling 類型轉換與採樣

數據有很多形式,在編碼時需要選擇合適的方式進行處理,才能進行數據挖掘。

在編碼時,編碼不同方式對問題結構和挖掘結果都會產生影響。

採樣:數據並不是都需要的,而且IO操作對數據庫並不友好,我們可以根據需要可以進行適當的採樣,能有效的降低數據量,加快處理速度。

不平衡的數據集對挖掘結果也會有影響,在採樣時也需要謹慎選擇(可以嘗試“複製”一些較少點加入數據集)。

在做分類的情況下,當數據過多時,也可以嘗試識別出邊緣點並進行加入數實驗據集,可以有效地降低實驗時的數據量。

14.5.2.1 Feature Selection 特徵選擇

在做數據挖掘的時候,要在多個屬性中進行挑選,否則會影響算法的效率與資源的消耗,所以屬性分好壞

熵-(Entropy):在數據挖掘中,代表變量/系統的不確定性。

  • H(x)=i=1np(xi)logbp(xi)H(x)=\sum\limits_{i=1}^n p(x_i)log_bp(x_i) 此處b一般取2,但也可以爲其他值,取2時單位爲比特

信息增益-(information gain):在數據挖掘中代表屬性的價值

  • ΔH(x)=H(x1)H(x2)\Delta H(x)=H(x_1)-H(x_2) 即增加屬性前後熵的差值

屬性組的優劣並不是單純的單個屬性好壞的疊加,因爲屬性間可能有影響或者關聯。

搜索最優屬性-(Subset Seach):爲了在衆多屬性中挑選最優的屬性組,會有衆多的排列組合,所以需要通過適當的算法。

Branch and Bound:尋找最優的屬性組。建立屬性樹,如有單調的情況,可以通過剪枝方法加速。啓發式、模擬退火等算法同樣適用

15.2.6.1 Feature Extraction 特徵提取

引例:照片把三維信息壓縮(投影)爲二維,信息損失很多,人們通過照片的特徵,依舊可以識別照片中的物體。

不同的屬性有不同的區分度,越重要的屬性越能區分物體,更少產生重複。所以屬性有好壞

此圖(理想情況下)中屬性Y2Y_2劣於屬性Y1Y_1(不能更好的區分數據點)我們將數據點向x軸投影,丟失的就是y軸方向的信息

主成分分析技術-PCA(principle components analysis):把座標平面的點向座標軸投影,相當於降維,投影方向(相當於屬性)有好壞。最優情況爲最大特徵向量。

數學工具:拉格朗日數乘法

在這裏插入圖片描述

實際情況下,數據的屬性往往有聯繫,此時要將圖像移動、並旋轉到理想情況。

在這裏插入圖片描述

16.2.7.1 The Issue of PCA PCA存在的問題以及解決

PCA是一種無監督學習,雖然可以進行降維,但是在分類時,PCA可能無法進行合理的投影方向選擇,導致無法進行分類。

在這裏插入圖片描述

舉例:如果向1軸投影,可以明顯區分兩個數據集,但是PCA會向2軸投影,導致兩個數據在低維混合,看不出分類。

線性判別分析-LDA(Liner Discriminant Analysis):相對PCA,LDA在投影的同時保留類的區分信息(指相同組中數據儘可能近,不同組中數據儘可能遠)

費舍爾準則-(Fisher Criterion):用於評估投影效果好壞(整體上越大越好)

  • J=(μ1μ2)2S12+S22J=|\frac{(\mu_1-\mu_2)^2}{S_1^2+S_2^2}| 其中μ\mu爲組中心點位置(越遠越好),SS爲各組離散程度(越小越好)

16.2.7.2 LDA Example 線性判別分析例

LDA不僅僅侷限於二分類,可以容易的拓展到nn類的情況,此時JJ的分子爲各個組中心點離所有點中心點的距離。此時nn分類最高可以投影到n1n-1維上

在一些特殊情況下(兩類比較近或者兩個分類維互相垂直),LDA的分類可能不如PCA,在使用時要謹慎分析。

19.3.1.1 Bayes、Decision Tree 貝葉斯、決策樹(概率基礎)

分類是一種有監督學習,會有標籤,這也是分類與聚類的差別。

數學工具:貝葉斯公式

20.3.2.1 Naive Bayes Classifier 樸素貝葉斯公式

注意區分:先驗後驗、相關獨立

拉普拉斯平滑-(Laplace Smoothing):如果出現數據庫中從未存儲的特殊點,一項爲0會導致整個概率公式值爲0。

  • P(ajkωi)=(aj=ajk)(ω=ωi)+1ω=ωi+ajP(a_{jk}|\omega_i)=\frac{|(a_j=a_{jk})\land(\omega=\omega_i) |+1}{|\omega=\omega_i|+|a_j|}(加1導致不會爲0)

貝葉斯公式的實際應用:

我們可以提取文章中的部分單詞,根據出現與否計算文章分類概率,但是這種情況會導致計算量非常大。改進 詞袋模型-(Word Bag),根據單詞在文章中出現的頻率來計算文章分類概率。

21.3.3.1 Decision Tree 決策樹

將不同因素設定規則,分層計算,形成決策樹。決策樹是可解釋的(if…then…),是決策樹的一大優勢

根據判斷順序不同,一個數據集可以建立很多樹。運用奧卡姆剃刀,我們可以選擇同樣分類效率下,儘量簡單的決策樹,

22.3.4.1 Decision Tree Framework 決策樹的建立策略

此章有拓展資料

把分類能力強的節點放在靠近根節點的情況可以大大縮小樹的規模,於是決策樹的建立與屬性判斷有關

熵-(Entropy):在變量選擇中,代表屬性的不確定性。最大值爲1,此時最不確定。最小值爲0,此時最確定。

  • Entropy(S)=i=1Cpilogb(pi)Entropy(S)=-\sum\limits_{i=1}^C p_ilog_b(p_i) 此處b一般取2,但也可以爲其他值,取2時單位爲比特

過學習-(Overfitting):在訓練集中a比b效果好,但在測試集中b比a好,此時就發生了過學習(通用概念)

決策樹並不是越大越好,也存在過學習(overfitting)的情況。爲避免過學習,有兩種剪枝策略:

  • 限制樹的深度
  • 進行剪枝(將某些子節點合併到父節點上)

簡單的決策樹 ID3 建立過程:

  1. 尋找能把數據集分的最開的屬性,進行分割
  2. 如果子集純,那麼停止分割,如果不純,繼續從1分割(如果沒有屬性,停止分割,標籤少數服從多數)

24.4.1.1 Perceptrons 感知機

神經網絡是計算機程序對大腦中神經元的簡化抽象模擬。

單個神經元開關速度(0,1互換)相對計算機比較慢,但人腦是多個神經元聯合分佈式處理的,處理速度很快。

感知機-(Perceptrons):單個的神經元,n個輸入,n+1個權重(w0w_0,避免所有點都過原點),輸出0或1

25.4.2.1 感知機的應用

感知機可以理解爲一個線性分類器,對於線性不可分等問題無能爲力

梯度下降法-(Gradient Descent):取權重時不同權重對結果影響不同,所以讓誤差不斷梯度下降

批處理學習-(Batch Learning):計算一批數據,將更改值保存在Δw\Delta w中,計算完後統一修改ww

隨機學習-(Stochastic Learning):一旦出現誤差,就修改ww

26.4.3.1 Multilayer Perception 多層感知機神經網絡

多層感知機通過在輸入和輸出間添加隱層來提升效率

多次感知機解決線性不可分問題:將輸入的線性不可分問題轉化爲線性可分問題,輸出到隱層,由隱層解決並輸出。

27.4.4.1 分類器學習算法

誤差反向傳播算法-BP(Backpropagation Rule):思想類似於感知機,用誤差對某個權重的輸入求偏導。但在多層感知機網絡中,由於隱層的期望值並不知道,所以沒法得知隱層的誤差,因此輸出後根據結果加權反向反饋,修改參數。

在求導時,很容易使參數掉進局部最優點,導致誤差不在下降,而神經網絡恰恰有很多局部最優點。爲了解決這個問題,

  1. 我們可以嘗試多次從不同點、不同方向出發,尋找最優參數。
  2. 也可以增加“衝量”,相當於“慣性”,讓參數點衝過一些比較小的局部最優點。
  3. 也可以嘗試改變學習率,較大的學習率可以直接大踏步跳過一些比較小的局部點,
  4. 而特殊的學習率會在一些特殊情況產生震盪,左右橫跳導致無法收斂,多次學習也是解決辦法。
↑↑↑可以結合小球滾斜坡、走路上下坡理解局部最優點↑↑↑

同樣,神經網絡也有過學習問題。所以我們既要設置訓練誤差-(Training Error)—–隨時間逐步降低,又要設置校驗誤差-(Validation Error)—–隨時加先降後升。在校驗誤差拐點停止訓練即可。

28.4.5.1 Beyond BP Networks 其他的神經網絡算法

此章有拓展資料

Elman Network:此算法有一定的記憶性,通過之前的輸入推出答案,輸出不僅僅取決於當前的輸入,還取決於之前的輸入。

Hopfield Network:是一個全連接神經網絡。類似於人大腦的記憶功能,利用收斂到局部最小值,實現聯想記憶。

同樣,不存在萬能的神經網絡,每個網絡算法都有自己的適應性,而且神經網絡的訓練時間很長,但訓練完成後反應很快。

神經網絡的可解釋性很差(只有權重)

30.5.1.1 Support Vector Machine(SVM) 支持向量機

原理:輸入維度向高維映射並進行分類(升維),仍然是線性分類器的一種,真正有效的點只有support vector。

邊緣-(margin):訓練集中分界面可以上下平移的區域,margin越大,錯誤越不會影響結果,參數越好。

支持點-(Support Vectors):導致平移邊界的點,決定了分界面能移動的範圍。

在這裏插入圖片描述

31.5.2.1 Linear SVM 線性SVM

目標:先分樣本(必須分對所有的點),再求最優值

數學工具:拉格朗日乘數法

但事實上很難完美的分對所有點,所以放寬條件(soft margin),允許少數點可以不滿足約束條件。

本質上還是一個線性分類器,仍然無法解決線性不可分問題。(soft margin只能解決數據有噪點的情況)

32.5.3.1 Non-linear SVM 非線性SVM

目的:彌補線性SVM不能解決線性不可分問題的缺陷

原理:輸入座標點向新座標空間映射並進行分類,可以是升維,也可以是同維度轉化。

映射方法一般是固定的,m維一般升到m22\frac{m^2}{2}維進行分類。

通過引入核函數進行等價變換,讓高維空間的計算等價於低維空間的運算,有效降低運算量。

在處理文本數據時,可以使用字符串核函數,處理字符串的子串,得到相應的式子進行分類。

33.5.4.1 SVM Roadmap SVM發展歷史

此章有拓展材料

SVM理論體系的形式不是一蹴而就的,而是經過了不斷地優化改善。

線性分類器-(讓margin最大化)-線性SVM-(解決數據存在噪聲問題)-soft margin-(解決線性不可分問題)-向高維映射-(解決計算複雜度過高問題)-引入核函數

讓margin最大化
解決數據存在噪聲問題
解決線性不可分問題
解決計算複雜度過高問題
線性分類器
線性SVM
soft margin
向高維映射
引入核函數

模型能力指數(model capacity):若h個點無論怎麼打標籤,模型都能區分(shatter),那麼該模型能力指數就是h

模型複雜性和風險相關,一般越複雜的模型風險越高。

34.5.5.1 Clustering 聚類

相似性導致聚集,聚類有兩種:分割型聚類(將數據進行分塊),層次型聚類(根據不同層次分塊)

聚類是無監督學習,沒有人打標籤,沒有絕對標準答案。

目的:使不同簇(clusters)之間距離最遠,相同簇最近

數據預處理對聚類影響很大,要謹慎對待。

36.6.2.1 Clustering Algorithm聚類算法

Silhouette:衡量聚類效果的參數,一般在[0,1)間,也存在少數負數

  • S(i)=b(i)a(i)max{b(i),a(i)}S(i)=\frac{b(i)-a(i)}{max\{b(i),a(i)\}}

K-Means算法

  1. 要分n塊,則隨機選n個種子點(模型參數)
  2. 根據n個點將數據域劃分
  3. 計算數據域的中心點,更新爲種子點,循環到1步

優點:對“球形”數據效果好,收斂快(一般5,6步能出結果)

缺點:K值難以不確定,初始點不好可能導致陷入局部最優點,噪點影響大,對“異型數據”適應性不好

最終目的:求出把數據域分成n塊的n箇中心點(參數)

Sequential Leader Clustering算法

可以應對數據流進行聚類,且不需要迭代,一遍過,且不需要確定K。

進來的數據,根據設定距離極限,直接與現有中心點距離進行比較,大於則自成中心,小於則加入簇中。

對於距離限設定比較敏感,太小則會產生很多簇,太大簇又會過少。

37.6.3.1 EM Method 期望最大法

混合高斯模型-(Gaussian Mixture):用不同高斯分佈進行疊加,每個分佈都有相應權重(αi)(\alpha_i),權重和爲1。

  • g(x,μ,σ)=12πσ2e(xμ)22σ2g(x,\mu,\sigma)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} 高斯分佈
  • F(x)=i=1naig(x,μi,αi),αi0&iαi=1F(x)=\sum\limits_{i=1}^na_ig(x,\mu_i,\alpha_i),\alpha_i\geq0\&\sum\limits_{i}\alpha_i=1

期望最大化算法-EM:類似於K均值聚類,先隨機生成各參數,再通過不斷迭代進行訓練,調整參數。

38.6.4.1 Density/Hierarchical Based Methods 密度與層次

此章有拓展材料

爲了解決“非規則分佈”數據和“大噪聲”數據的問題,從密度方向解決問題

優點:不需要設定K值或距離極限(雖然還要定義一個距離參數)

DBSCAN算法:通過點與點之間的距離進行聚類,不斷遞歸膨脹,其中距離參數即爲分類的層面,越小的話分類層析越低,越大分類層次越高。

核心點:在一定距離(需要用戶設定)內有足夠的點

邊緣點:在覈心點距離範圍內且不是核心點的點

噪點:既不是核心點也不是邊緣點(需要排除)

Hierarchical Based Methods:算模型中每個點與其他點的距離矩陣,選模型中最近的兩個點合併進一個簇,迭代至只有一個簇結束。

最小距離法:合併後新簇與其他簇的距離,爲兩簇中距離最小的點之間的距離

最大距離法:合併後新簇與其他簇的距離,爲兩簇中距離最大的點之間的距離

39.7.1.1 Assocation Role 關聯規則

目的:在龐大的元素庫中找出元素之間的關聯關係

這個規則主要應用在商品的推銷上(啤酒與尿布)

還可以延伸用於文字分析,把單個單詞看做元素,對每篇文章分析即可得出單詞之間的關聯關係

40.7.2.1 Support&Confidence of Association Role 支持度 置信度

支持度在關聯規則分析中就是頻率(\frac{關聯發生的次數}{總次數}

置信度爲在某元素出現的情況下關聯發生的概率(\frac{關聯發生的次數}{包含某一元素的次數})即條件概率

  • Support(XY)=#(XY)nSupport(X\rightarrow Y)=\frac{\#(X\cup Y)}{n}
  • Confidence(XY)=#(XY)#XConfidence(X\rightarrow Y)=\frac{\#(X\cup Y)}{\#X}

注意規則順序,順序相反分母會變化,Confidence也會變化

在大元素集中,組合的數量會快速增加,同時記錄也是海量的,一條一條驗證顯然不可行。·

宏觀處理:

  1. 設置一個支持度、置信度的一個限值
  2. 把所有頻繁的組合找出來
  3. 生成頻繁組合的所有非空子集,並寫出所有可能的子集關聯規則
  4. 計算所有子集關聯規則的支持度與置信度
  5. 比較子集的支持度、置信度與設定的限值,若超過則認爲關聯性強

41.7.3.1 About Assocation Role 關聯規則的誤區

規則的關聯性很強並不一定代表該規則有意義(當兩個元素頻率差別特別大時尤爲明顯)

關聯規則就是一個條件概率,兩件事物相關,並不一定他們之間有代表因果關係,不應做過多解釋。

42.7.4.1 Apriori Method Apriori算法

元素因爲排列組合,所有可能的非空關聯的數量非常龐大(2d1)(2^d-1),不能用傳統方法解決。

原理:

  1. 任何一個頻繁項的子集必須頻繁
  2. 如果某個規則不頻繁,那麼他的超集必須不頻繁

相當於一個剪枝算法

具體步驟:

  1. 生成某個特定大小的頻繁集(一般爲1)
  2. 對頻繁集進行組合,並刪除頻繁集
  3. 迭代運行1,2

核心思想:儘量避免生成不頻繁集

缺點:本算法需要頻繁掃描數據庫,而這種操作在大型數據庫中成本較高

44.7.6.1 Sequential Pattern 序列模式

此章有拓展材料

在一般的記錄中,不包含記錄產生的時間或者購買人,那麼對於序列先後或間隔的分析就無法進行。

目的:分析某事發生後,另一件事就有可能發生

我們將序列按先後時間排序,若某 元素順序 持續在序列集中出現,那麼該 元素順序 就是一個序列(不一定要直接連續,允許有間隔)

方法:先找短序列,不斷連接變爲長序列,並檢驗是否頻繁即可。

46.8.1.1 Recommend Algorithm 推薦算法

應用:精準廣告營銷、協同推薦、音樂推薦

47.8.2.1 Text Analysis 文本分析

Tf-idf:輸入關鍵詞,量化該詞與數據庫詞中的關聯情況

關鍵詞頻率-TF(Term Frequency):關鍵詞的頻率

逆文檔頻率-(Inverse Document Frequency):該單詞在其他文檔中的頻率(作用:過濾諸如“the”“a”之類的詞)

單詞-文本矩陣-(Term-Document matrix):在文本處理時,將單詞和多個文本的tf-idf值組成矩陣並進行計算

  • tf(t,d)=nt,dknk,dtf(t,d)=\frac{n_{t,d}}{\sum_kn_{k,d}}\frac{某詞在全文中出現的頻數}{全文詞總頻數})

  • idf(t,D)=logD{dD:td}idf(t,D)=log\frac{|D|}{|\{d\in D:t\in d\}|}loglog\frac{所有文檔個數}{包含特定詞文檔個數}

  • tfidf(t,d,D)=tf(t,d)×idf(t,D)tf-idf(t,d,D)=tf(t,d)\times idf(t,D)

在計算機處理文檔時,一般將文章處理爲向量並進行計算夾角。

在文檔處理時,近義詞(Synonymy)、多義詞(Polysemy)的存在會干擾文檔處理。

隱含語義分析-LSA(Later Semantic Analysis):將矩陣放進新的空間而不是原空間進行分析

  • X=TSD1X=TSD^{-1} S:對角陣
  1. XX分解爲TSD1TSD^{-1}
  2. 選擇幾個信息量最大的維度並進行降維
  3. 將降維後矩陣乘回去並畫圖
  4. 對新得的圖進行聚類

48.8.3.1 PageRank 網頁評分

頁面評分-(PageRank):網頁可以被看爲互相有鏈接的文檔,其PageRank值越高代表網頁越好。

指向某網頁的鏈接越多、指向來源的PR值越高、指向來源的指向鏈接越少,某網頁質量越高。

  • PR(Pi)=pjM(pi)PR(pj)L(pj)PR(P_i)=\sum\limits_{p_j\in M(p_i)}\frac{PR(p_j)}{L(p_j)} 即:PR\frac{來源網站PR值}{來源網站的鏈接數}之和
  • PR(Pi;t+1)=1dN+dpjM(pi)PR(pj)L(pj)PR(P_i;t+1)=\frac{1-d}{N}+d\sum\limits_{p_j\in M(p_i)}\frac{PR(p_j)}{L(p_j)} 即:t+1秒時網站的PR值,是一個迭代值,最終收斂爲定值
    • d-阻尼參數(damping factor):固定參數,一般取0.85
    • 1dN\frac{1-d}{N}是讓所有時間所有網頁PR值和爲1

49.8.4.1 Collaborative Filtering 協同過濾

核心思想:收集興趣相似的用戶的打分信息,並製作打分矩陣,表示並推測每個人對每個商品的喜愛程度。

既可以在用戶間計算關聯,也可以在商品之間計算關聯,也可以建立模型進行計算,在不同情況下采用的算法也不一樣。

可能影響算法的因素:

  • 灰羊效應:即介於黑白之間的情況
  • 冷啓動:用戶新來平臺,沒有數據,如何推薦
  • 網絡水軍的故意攻擊
  • 用戶的打分習慣(有人習慣打高分,有人習慣打低分,因此要與平均分進行計算)

51.9.1.1 Ensemble Learning (1) 集成學習(1)

核心思想:有策略的集中不同類型的分類器,根據綜合結果得出結論。

也可以對模型進行拆分,將複雜的問題拆成簡單的問題來解決。本質上是分類器的實用策略

Machine learning
Supervised learning
Semi-supervised learning
Unsupervised learning
Classification
Single algorithms:SVM,DT,NN
Ensemble algorithms
Boosting
Bagging

52.9.2.1 Ensemble Learning (2) 集成學習(2)

在集成學習中,集中策略可以使用“少數服從多數”或“權重”來決定最終決策走向,且不用擔心過學習問題。

爲了保證各個分類器結論相似而不同,可以使用不同部分的數據集來訓練每個分類器。

引導聚集算法-Bagging(Bootstrap Aggregating):

  1. 將數據集用bootstrap法採樣爲若干子數據集
  2. 在子數據集上訓練分類器
  3. 用這些分類器處理數據,根據結果“少數服從多數”得出答案

未選入子數據集的數據(OOB-Out Of Bag,大約13\frac{1}{3})可以用來檢驗。

53.9.3.1 Ensemble Learning (3) 集成學習(3)

每個分類器分類效果不同,每個數據集容易被分對的可能性也不同,他們所佔的權重也不應該相同,這裏的權重也可以學習。

Stacking算法(並行):在原始的分類器(學習輸出結果)輸出基礎上,再過一層分類器(學習各個分類器的權重),從而得出最終結果。可以視爲Bagging的升級版。

Boosting算法(串行):先訓練一個分類器,對於分對的和分錯的分開劃分數據集,針對正誤數據集進行繼續訓練(相當於對訓練集加權重,越多分類器分錯,該數據集權重越大)

56.10.1.1 Evolutionary Algorithms 進化算法

進化算法的目的:

  1. 優化(廣義的)
  2. 進行模擬,幫助人類理解自然的進化

特點:

  1. 基於數量的
  2. 有隨機性
  3. 並行(不易局部最優)
  4. 適者生存
  5. 不侷限於某種特定問題,可能是普適的
  6. ……

57.10.2.1 Objective Function 目標函數

機器學習算法本質還是優化問題,只不過有難有易。

現實中的大部分問題都是複雜的,很難直接暴力解決,必須要進行優化。

59.10.4.1 Genetic Algorithm(1) 遺傳算法-初探(1)

遺傳算法是鬆散的基於達爾文進化論,並不是完全相同的。

遺傳算法的幾部分:表示(二進制還是格雷碼等)、遺傳、選擇、變異、表達(向量)

格雷碼與二進制的區別:系統在每一次變化時,碼值只會變化一位,更加穩定。

在設置權重的時候,可以用原始值比例確定,也可以用序號確定(防止過於優秀的個體佔據了過大概率)

在選擇時,可以兩兩PK選擇,可以精英選擇(防止突變導致的結果不穩定),可以用百分率選擇

60.10.5.1 Genetic Algorithm(2) 遺傳算法-框架(2)

雜交:嘗試生成更多的可能

  1. 一點雜交:只選擇一個點,將點後的段交換
  2. n點雜交:選擇n個點,在點與點之間的片段進行交換

變異:保證多元基因的存在,防止收斂到只有一個物種(變異率不應太高)

選擇:給更適應的個體更大概率

基本框架(兩層循環):

  1. 生成種羣
  2. 代際循環
    3. 代內循環

60.10.5.1 Genetic Algorithm(3) 遺傳算法-可能性(3)

遺傳算法在維度過大時複雜度會比較高,要進行適當的選擇。

遺傳算法在分類和聚類中均可以應用,

Pareto Front:在多目標優化的情況下,基於不同的評判角度無法選擇最優點,此時交給用戶選擇。

62.10.6.1 Genetic Algorithm(4) 遺傳算法-遺傳程序(4)

**遺傳算法-(Genetic Algorithm)遺傳程序-(Genetic Program)**的區別:遺傳算法輸出的是模型參數,遺傳程序輸出的則是一段計算機程序

遺傳程序將計算式表示爲樹,針對樹進行雜交進行優化,一模一樣的樹在雜交後也能產生新樹。

評判方式:用積分計算目標值與當前值之間差異部分的面積,面積大則擬合性不好。

63.10.7.1 Genetic Algorithm(5) 遺傳算法-遺傳硬件(5)

可計劃電路-(Evolvable Circuits):硬件的線路可以變化並改變結構,實現原先沒有的功能。

用途:

  1. 芯片在遇到設計時未想到的情況時,能自行修整並應對環境。
  2. 設計天線形狀達到最優性能
  3. 汽車的外形設計
  4. ”人工生命“
  5. 程序繪畫、譜曲

困難的地方:對於運行結果的評價是難以量化並打分的,可能需要人類的評判

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章