OPENCV機器學習 ~ [機器學習經典算法剖析 基於OpenCV] 書本 範例

OPENCV機器學習 ~ [機器學習經典算法剖析 基於OpenCV] 書本 範例

OPENCV機器學習 ~ [機器學習經典算法剖析 基於OpenCV] 書本 範例


GITHUB: https://github.com/jash-git/CB_OpenCV249_ML


最小平方法/線性代數/線性回歸

https://github.com/jash-git/CPP-opencv-Linear-algebra

正態貝葉斯分類器

https://blog.csdn.net/tiankong_/article/details/78400300


K近鄰算法[knn]

https://blog.csdn.net/zhaocj/article/details/50764093


支持向量機[svm]

https://blog.csdn.net/zhaocj/article/details/51297907


決策樹[cart]

https://blog.csdn.net/yxp520123/article/details/79043762


AdaBoost

https://my.oschina.net/abcijkxyz/blog/787678


梯度提升樹

https://blog.csdn.net/zhaocj/article/details/51461643


隨機森林

https://blog.csdn.net/zhaocj/article/details/51580092


極端隨機樹

https://blog.csdn.net/zhaocj/article/details/51648966


期望極大值

https://blog.csdn.net/zhaocj/article/details/52416194


神經網絡

https://blog.csdn.net/zhaocj/article/details/52747924


14 thoughts on “OPENCV機器學習 ~ [機器學習經典算法剖析 基於OpenCV] 書本 範例

  1. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    1.決策樹: 判別模型,多分類與回歸,正則化的極大似然估計

    特點:

    適用於小數據集

    優點:

    計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵;

    缺點:

    容易過擬合(後續出現了隨機森林,減小了過擬合現象),使用剪枝來避免過擬合;

    適用數據范圍:

    數值型和標稱型

    CART分類與回歸樹:

    決策樹分類方法,採用基於最小距離的基尼指數估計函數,用來決定由該子數據集生成的決策樹的拓展形。決策樹回歸方法,採用切分點與切分變量來計算的損失來估計函數。如果目標變量是標稱的,稱為分類樹;如果目標變量是連續的,稱為回歸樹。分類樹是使用樹結構算法將數據分成離散類的方法。

    優點:

    非常靈活,可以允許有部分錯分成本,還可指定先驗概率分佈,可使用自動的成本複雜性剪枝來得到歸納性更強的樹,產生的分類規則易於理解,準確率較高。

    缺點:

    在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。

  2. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    2.隨機森林:判別模型,多分類與回歸,正則化的極大似然估計,Bagging,Random Future
    特點:

    準確率可以和Adaboost相媲美,對錯誤和離群點更魯棒。準確率依賴於個體分類器的實力和它們之間的依賴性。理想情況是保持個體分類器的能力而不提高它們的相關性。對每次劃分所考慮的屬性數很敏感。通常選取logn2+1個屬性,其中n是數據集的實例數。(一個有趣的觀察是,使用單個隨機選擇的屬性可能導致很好的準確率,常常比使用多個屬性更高。)

    優點:

    不易過擬合,可能比Bagging和Boosting更快。由於在每次劃分時只考慮很少的屬性,因此它們在大型數據庫上非常有效。有很好的方法來填充缺失值,即便有很大一部分數據缺失,仍能維持很高準確度。給出了變量重要性的內在估計,對於不平衡樣本分類,它可以平衡誤差。可以計算各實例的親近度,對於數據挖掘、檢測離群點和數據可視化非常有用。

    缺點:

    在某些噪聲較大的分類和回歸問題上會過擬合。對於有不同級別的屬性的數據,級別劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產生的屬性權值是不可信的。

  3. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    3.k-means:聚類
    特點:

    並一定能得到全局最優解(依賴於初始點選取),所以常用多次運行,取最優,假設了均方誤差為計算群組分散度的最佳參數

    優點:

    簡單快速,複雜度為O(nkt),n為樣本數,k為類別數,t為迭代數

    缺點:

    只對簇的平均值被定義下才能被使用,不適合某些分類屬性,虛實線給定簇數K,對初值敏感,不適合發現大小差別很大的簇,對噪聲、孤立點敏感(對平均值產生極大影響)

  4. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    4.KNN:判別模型,多分類與回歸
    特點:

    不具有顯示的學習過程,通過多數表決方式進行預測,k值選擇、距離度量、分類決策規則是K近鄰法的三要素

    優點:

    簡單,分類與回歸均可操作,可用於非線性分類,複雜度為O(n),對outlier不敏感

    缺點:

    K需預先設定,對大小不平衡的數據易偏向大容量數據

    常用算法:

    kd樹:對x的K個特徵,一個一個做切分,使得每個數據最終都在切分點上(中位數),對輸入的數據搜索kd樹,找到K近鄰

  5. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    5.EM:含隱藏變量的概率模型,使用概率模型參數估計
    特點:

    E:給定參數與觀測數據下對未觀測數據的條件概率分佈的期望

    M:求使條件概率分佈期望最大下的參數值

    優點:

    比K-means穩定、準確

    缺點:

    計算複雜且收斂慢,依賴於初始參數假設

  6. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    8.樸素貝葉斯:生成模型,
    特點:

    使用先驗知識得到後驗概率,由期望風險最小化得到後驗概率最大化。假設條件獨立,條件不獨立就變成貝葉斯網絡了

    優點:

    小規模數據集表現好,適合多分類

    缺點:

    需要條件獨立假設,會犧牲一定準確率,分類性能不一定高

  7. 機器學習經典算法優缺點總結

    資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40

    9.Apriori:兩階段頻集思想,遞推(關聯規則)
    特點:

    1頻度→支持度→2頻度→支持度→…,每次刪除支持度小於摸個閥值的點,最終返回各個頻集

    優點:

    易編碼實現

    缺點:

    大數據上速度較慢,候選集每次產生過多,未排除不應該參與計算支持度的點.

    每次都需要計算支持度,需對全部記錄掃描,需要很大I/O負載


    10.Boosting
    特點:

    通過改變樣本權值進行學習,將最終的多個分類器根據性能進行組合

    優點:

    低泛化誤差,以實現,分類準確率高,無太多參數需要調節

    缺點:

    對outlier敏感


    11.GBDT(MART):回歸樹
    特點:

    有兩個版本:一個是殘差版本,另一個是Gradient版本(這個版本更廣泛)

    優點:

    非線性與線性均可,不易過擬合

    缺點:


    12.SVM:
    特點:

    將低維空間映射到高維空間,實現線性可分

    優點:

    可實現非線性分類,可用於分類與回歸,低泛化誤差,易解釋

    缺點:

    對核函數以及參數敏感


    13.神經網絡
    特點:

    模擬人腦構造,構造神經元

    優點:

    (BP)很強的分線性擬合能力,學習規則簡單,很強的魯棒性,具有記憶能力、自學能力,誤差反向傳播,並行性好

    (RBF)唯一最佳逼近特性,無局部最小問題,前反饋網絡中RBF網絡完成映射功能最優,分類能力好,收斂性比BP快非常多

    缺點:

    沒能力解釋自己的推理過程及依據,數據不充分時,將無法工作,初值較敏感(使用AUTO-Encoder)


    14.隱式馬爾科夫(HMM)
    特點:

    隱馬爾可夫模型是一個雙重隨機過程—-具有一定狀態數的隱馬爾可夫鍊和顯示隨機函數集。

    HMM是一種有向圖

    HMM對轉移概率和表現概率直接建模,統計共現概率。

    針對以下三個問題,人們提出了相應的算法

    *1 評估問題: 前向算法

    *2 解碼問題: Viterbi算法

    *3 學習問題: Baum-Welch算法(向前向後算法)

    優點:

    解決了標註問題

    缺點:

    做了齊次馬爾科夫假設及觀測股利性假設,可能出現標記偏置


    15.條件隨機場(CRF)
    特點:

    CRF是一種判別式模型,CRF是一種無向圖

    優點:

    CRF是在全局範圍內統計歸一化的概率,是全局最優的解。解決了MEMM中標註偏置的問題。

    CRF沒有HMM那樣嚴格的獨立性假設條件,因而可以容納任意的上下文信息。特徵設計靈活(與ME一樣)

    與MEMM比較:由於CRF計算全局最優輸出節點的條件概率,它還克服了最大熵馬爾可夫模型標記偏置(Label-bias)的缺點。

    與ME比:CRF是在給定需要標記的觀察序列的條件下,計算整個標記序列的聯合概率分佈,而不是在給定當前狀態條件下,定義下一個狀態的狀態分佈。

    缺點:

    訓練代價大、複雜度高

  8. 深入浅出 Python 机器学习

    https://www.books.com.tw/products/CN11558806

    深入淺出Python機器學習
    作者: 段小手
    出版社:清華大學出版社
    出版日期:2018/08/01
    語言:簡體中文
    定價:414元
    優惠價:87折360元

    第1章 概 述
    1.1 什麼是機器學習——從一個小故事開始 / 002
    1.2 機器學習的一些應用場景——蝙蝠公司的業務單元 / 003
    1.3 機器學習應該如何入門——世上無難事 / 005
    1.4 有監督學習與無監督學習 / 007
    1.5 機器學習中的分類與回歸 / 008
    1.6 模型的泛化、過擬合與欠擬合 / 008
    1.7 小結 / 009

    第2章 基於Python語言的環境配置
    2.1 Python的下載和安裝 / 012
    2.2 Jupyter Notebook的安裝與使用方法 / 013
    2.2.1 使用pip進行Jupyter Notebook的下載和安裝 / 013
    2.2.2 運行Jupyter Notebook / 014
    2.2.3 Jupyter Notebook的使用方法 / 015
    2.3 一些必需庫的安裝及功能簡介 / 017
    2.3.1 Numpy——基礎科學計算庫 / 017
    2.3.2 Scipy——強大的科學計算工具集 / 018
    2.3.3 pandas——資料分析的利器 / 019
    2.3.4 matplotlib——畫出優美的圖形 / 020
    2.4 scikit-learn——非常流行的Python機器學習庫 / 021
    2.5 小結 / 022

    第3章 K最近鄰演算法——近朱者赤,近墨者黑
    3.1 K最近鄰演算法的原理 / 024
    3.2 K最近鄰演算法的用法 / 025
    3.2.1 K最近鄰演算法在分類任務中的應用 / 025
    3.2.2 K最近鄰演算法處理多元分類任務 / 029
    3.2.3 K最近鄰演算法用於回歸分析 / 031
    3.3 K最近鄰演算法專案實戰——酒的分類 / 034
    3.3.1 對資料集進行分析 / 034
    3.3.2 生成訓練資料集和測試資料集 / 036
    3.3.3 使用K最近鄰演算法進行建模 / 038
    3.3.4 使用模型對新樣本的分類進行預測 / 039
    3.4 小結 / 041

    第4章 廣義線性模型——“耿直”的演算法模型
    4.1 線性模型的基本概念 / 044
    4.1.1 線性模型的一般公式 / 044
    4.1.2 線性模型的圖形表示 / 045
    4.1.3 線性模型的特點 / 049
    4.2 最基本的線性模型——線性回歸 / 050
    4.2.1 線性回歸的基本原理 / 050
    4.2.2 線性回歸的性能表現 / 051
    4.3 使用L2正則化的線性模型——嶺回歸 / 053
    4.3.1 嶺回歸的原理 / 053
    4.3.2 嶺回歸的參數調節 / 054
    4.4 使用L1正則化的線性模型——套索回歸 / 058
    4.4.1 套索回歸的原理 / 058
    4.4.2 套索回歸的參數調節 / 059
    4.4.3 套索回歸與嶺回歸的對比 / 060
    4.5 小結 / 062

    第5章 樸素貝葉斯——打雷啦,收衣服啊
    5.1 樸素貝葉斯基本概念 / 064
    5.1.1 貝葉斯定理 / 064
    5.1.2 樸素貝葉斯的簡單應用 / 064
    5.2 樸素貝葉斯演算法的不同方法 / 068
    5.2.1 貝努利樸素貝葉斯 / 068
    5.2.2 高斯樸素貝葉斯 / 071
    5.2.3 多項式樸素貝葉斯 / 072
    5.3 樸素貝葉斯實戰——判斷腫瘤是良性還是惡性 / 075
    5.3.1 對資料集進行分析 / 076
    5.3.2 使用高斯樸素貝葉斯進行建模 / 077
    5.3.3 高斯樸素貝葉斯的學習曲線 / 078
    5.4 小結 / 080

    第6章 決策樹與隨機森林——會玩讀心術的演算法
    6.1 決策樹 / 082
    6.1.1 決策樹基本原理 / 082
    6.1.2 決策樹的構建 / 082
    6.1.3 決策樹的優勢和不足 / 088
    6.2 隨機森林 / 088
    6.2.1 隨機森林的基本概念 / 089
    6.2.2 隨機森林的構建 / 089
    6.2.3 隨機森林的優勢和不足 / 092
    6.3 隨機森林實例——要不要和相親物件進一步發展 / 093
    6.3.1 資料集的準備 / 093
    6.3.2 用get_dummies處理資料 / 094
    6.3.3 用決策樹建模並做出預測 / 096
    6.4 小結 / 098

    第7章 支援向量機SVM——專治線性不可分
    7.1 支持向量機SVM基本概念 / 100
    7.1.1 支持向量機SVM的原理 / 100
    7.1.2 支援向量機SVM的核函數 / 102
    7.2 SVM的核函數與參數選擇 / 104
    7.2.1 不同核函數的SVM對比 / 104
    7.2.2 支持向量機的gamma參數調節 / 106
    7.2.3 SVM演算法的優勢與不足 / 108
    7.3 SVM實例——波士頓房價回歸分析 / 108
    7.3.1 初步瞭解資料集 / 109
    7.3.2 使用SVR進行建模 / 110
    7.4 小結 / 114

    第8章 神經網路——曾入“冷宮”,如今得寵
    8.1 神經網路的前世今生 / 116
    8.1.1 神經網路的起源 / 116
    8.1.2 第一個感知器學習法則 / 116
    8.1.3 神經網路之父——傑弗瑞•欣頓 / 117
    8.2 神經網路的原理及使用 / 118
    8.2.1 神經網路的原理 / 118
    8.2.2 神經網路中的非線性矯正 / 119
    8.2.3 神經網路的參數設置 / 121
    8.3 神經網路實例——手寫辨識 / 127
    8.3.1 使用MNIST資料集 / 128
    8.3.2 訓練MLP神經網路 / 129
    8.3.3 使用模型進行數位識別 / 130
    8.4 小結 / 131

    第9章 資料預處理、降維、特徵提取及聚類——快刀斬亂麻
    9.1 數據預處理 / 134
    9.1.1 使用StandardScaler進行資料預處理 / 134
    9.1.2 使用MinMaxScaler進行資料預處理 / 135
    9.1.3 使用RobustScaler進行資料預處理 / 136
    9.1.4 使用Normalizer進行資料預處理 / 137
    9.1.5 通過資料預處理提高模型準確率 / 138
    9.2 數據降維 / 140
    9.2.1 PCA主成分分析原理 / 140
    9.2.2 對資料降維以便於進行視覺化 / 142
    9.2.3 原始特徵與PCA主成分之間的關係 / 143
    9.3 特徵提取 / 144
    9.3.1 PCA主成分分析法用於特徵提取 / 145
    9.3.2 非負矩陣分解用於特徵提取 / 148
    9.4 聚類演算法 / 149
    9.4.1 K均值聚類演算法 / 150
    9.4.2 凝聚聚類演算法 / 153
    9.4.3 DBSCAN演算法 / 154
    9.5 小結 / 157

    第10章 資料表達與特徵工程——錦上再添花
    10.1 資料表達 / 160
    10.1.1 使用啞變數轉化類型特徵 / 160
    10.1.2 對資料進行裝箱處理 / 162
    10.2 數據“升維” / 166
    10.2.1 向資料集添加互動式特徵 / 166
    10.2.2 向資料集添加多項式特徵 / 170
    10.3 自動特徵選擇 / 173
    10.3.1 使用單一變數法進行特徵選擇 / 173
    10.3.2 基於模型的特徵選擇 / 178
    10.3.3 反覆運算式特徵選擇 / 180
    10.4 小結 / 182

    第11章 模型評估與優化……
    11.1 使用交叉驗證進行模型評估 / 184
    11.1.1 scikit-learn中的交叉驗證法 / 184
    11.1.2 隨機拆分和“挨個兒試試” / 186
    11.1.3 為什麼要使用交叉驗證法 / 188
    11.2 使用網格搜索優化模型參數 / 188
    11.2.1 簡單網格搜索 / 189
    11.2.2 與交叉驗證結合的網格搜索 / 191
    11.3 分類模型的可信度評估 / 193
    11.3.1 分類模型中的預測準確率 / 194
    11.3.2 分類模型中的決定係數 / 197
    11.4 小結 / 198

    第12章 建立演算法的管道模型——團結就是力量
    12.1 管道模型的概念及用法 / 202
    12.1.1 管道模型的基本概念 / 202
    12.1.2 使用管道模型進行網格搜索 / 206
    12.2 使用管道模型對股票漲幅進行回歸分析 / 209
    12.2.1 資料集準備 / 209
    12.2.2 建立包含預處理和MLP模型的管道模型 / 213
    12.2.3 向管道模型添加特徵選擇步驟 / 214
    12.3 使用管道模型進行模型選擇和參數調優 / 216
    12.3.1 使用管道模型進行模型選擇 / 216
    12.3.2 使用管道模型尋找更優參數 / 217
    12.4 小結 / 220

    第13章 文本資料處理——親,見字如“數”
    13.1 文本資料的特徵提取、中文分詞及詞袋模型 / 222
    13.1.1 使用CountVectorizer對文本進行特徵提取 / 222
    13.1.2 使用分詞工具對中文文本進行分詞 / 223
    13.1.3 使用詞袋模型將文本資料轉為陣列 / 224
    13.2 對文本資料進一步進行優化處理 / 226
    13.2.1 使用n-Gram改善詞袋模型 / 226
    13.2.2 使用tf-idf模型對文本資料進行處理 / 228
    13.2.3 刪除文本中的停用詞 / 234
    13.3 小結 / 236

    第14章 從資料獲取到話題提取——從“研究員”到“段子手”
    14.1 簡單頁面的爬取 / 238
    14.1.1 準備Requests庫和User Agent / 238
    14.1.2 確定一個目標網站並分析其結構 / 240
    14.1.3 進行爬取並保存為本地檔 / 241
    14.2 稍微複雜一點的爬取 / 244
    14.2.1 確定目標頁面並進行分析 / 245
    14.2.2 Python中的規則運算式 / 247
    14.2.3 使用BeautifulSoup進行HTML解析 / 251
    14.2.4 對目標頁面進行爬取並保存到本地 / 256
    14.3 對文本資料進行話題提取 / 258
    14.3.1 尋找目標網站並分析結構 / 259
    14.3.2 編寫爬蟲進行內容爬取 / 261
    14.3.3 使用潛在狄利克雷分佈進行話題提取 / 263
    14.4 小結 / 265

    第15章 人才需求現狀與未來學習方向——你是不是下一個“大牛”
    15.1 人才需求現狀 / 268
    15.1.1 全球AI從業者達190萬,人才需求3年翻8倍 / 268
    15.1.2 AI人才需求集中於一線城市,七成從業者月薪過萬 / 269
    15.1.3 人才困境仍難緩解,政策支援亟不可待 / 269
    15.2 未來學習方向 / 270
    15.2.1 用於大資料分析的計算引擎 / 270
    15.2.2 深度學習開源框架 / 271
    15.2.3 使用概率模型進行推理 / 272
    15.3 技能磨煉與實際應用 / 272
    15.3.1 Kaggle演算法大賽平臺和OpenML平臺 / 272
    15.3.2 在工業級場景中的應用 / 273
    15.3.3 對演算法模型進行A/B測試 / 273
    15.4 小結 / 274

    參考文獻 / 275

  9. 機器學習算法優缺點 & 如何選擇

    資料來源:https://mp.weixin.qq.com/s/g3nLEOmRHe6iAY9_E3zpGw

    偏差:描述的是預測值(估計值)的期望E’與真實值Y之間的差距。偏差越大,越偏離真實數據。

    方差:描述的是預測值P的變化範圍,離散程度,是預測值的方差,也就是離其期望值E的距離。方差越大,數據的分佈越分散。

  10. 機器學習必學10大演算法

    資料來源:https://mp.weixin.qq.com/s/PT2zu5Wm-_MxgRdC4DVWIQ

    1. 線性回歸: y=b1x+b0

    2. Logistic 回歸:它是二分類問題的首選方法

    3. 線性判別分析(LDA)

    4. 分類和回歸樹

    5. 樸素貝葉斯

    6. K 最近鄰演算法(KNN)

    7. 學習向量量化(LVQ)

    8. 支持向量機(SVM)

    9. 袋裝法和隨機森林

    10. Boosting 和 AdaBoost

jash.liao@qq.com 發表迴響 取消回覆

你的電子郵件位址並不會被公開。 必要欄位標記為 *