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] 書本 範例”
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
1.決策樹: 判別模型,多分類與回歸,正則化的極大似然估計
特點:
適用於小數據集
優點:
計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵;
缺點:
容易過擬合(後續出現了隨機森林,減小了過擬合現象),使用剪枝來避免過擬合;
適用數據范圍:
數值型和標稱型
CART分類與回歸樹:
決策樹分類方法,採用基於最小距離的基尼指數估計函數,用來決定由該子數據集生成的決策樹的拓展形。決策樹回歸方法,採用切分點與切分變量來計算的損失來估計函數。如果目標變量是標稱的,稱為分類樹;如果目標變量是連續的,稱為回歸樹。分類樹是使用樹結構算法將數據分成離散類的方法。
優點:
非常靈活,可以允許有部分錯分成本,還可指定先驗概率分佈,可使用自動的成本複雜性剪枝來得到歸納性更強的樹,產生的分類規則易於理解,準確率較高。
缺點:
在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
2.隨機森林:判別模型,多分類與回歸,正則化的極大似然估計,Bagging,Random Future
特點:
準確率可以和Adaboost相媲美,對錯誤和離群點更魯棒。準確率依賴於個體分類器的實力和它們之間的依賴性。理想情況是保持個體分類器的能力而不提高它們的相關性。對每次劃分所考慮的屬性數很敏感。通常選取logn2+1個屬性,其中n是數據集的實例數。(一個有趣的觀察是,使用單個隨機選擇的屬性可能導致很好的準確率,常常比使用多個屬性更高。)
優點:
不易過擬合,可能比Bagging和Boosting更快。由於在每次劃分時只考慮很少的屬性,因此它們在大型數據庫上非常有效。有很好的方法來填充缺失值,即便有很大一部分數據缺失,仍能維持很高準確度。給出了變量重要性的內在估計,對於不平衡樣本分類,它可以平衡誤差。可以計算各實例的親近度,對於數據挖掘、檢測離群點和數據可視化非常有用。
缺點:
在某些噪聲較大的分類和回歸問題上會過擬合。對於有不同級別的屬性的數據,級別劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產生的屬性權值是不可信的。
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
3.k-means:聚類
特點:
並一定能得到全局最優解(依賴於初始點選取),所以常用多次運行,取最優,假設了均方誤差為計算群組分散度的最佳參數
優點:
簡單快速,複雜度為O(nkt),n為樣本數,k為類別數,t為迭代數
缺點:
只對簇的平均值被定義下才能被使用,不適合某些分類屬性,虛實線給定簇數K,對初值敏感,不適合發現大小差別很大的簇,對噪聲、孤立點敏感(對平均值產生極大影響)
機器學習經典算法優缺點總結
資料來源: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近鄰
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
5.EM:含隱藏變量的概率模型,使用概率模型參數估計
特點:
E:給定參數與觀測數據下對未觀測數據的條件概率分佈的期望
M:求使條件概率分佈期望最大下的參數值
優點:
比K-means穩定、準確
缺點:
計算複雜且收斂慢,依賴於初始參數假設
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
6.線性回歸
特點:
解析解
優點:
簡單,存在解析解
缺點:
對複雜數據擬合不好,欠擬合
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
7.LogReg:對數線性模型
特點:
模型源自於邏輯斯蒂分佈優化算法有改進的迭代尺度法、梯度下降法、擬牛頓法
優點:
簡單,計算量小,存儲資源低
缺點:
欠擬合,精度不高
機器學習經典算法優缺點總結
資料來源:https://bigdatafinance.tw/index.php/392-2017-06-01-13-30-40
8.樸素貝葉斯:生成模型,
特點:
使用先驗知識得到後驗概率,由期望風險最小化得到後驗概率最大化。假設條件獨立,條件不獨立就變成貝葉斯網絡了
優點:
小規模數據集表現好,適合多分類
缺點:
需要條件獨立假設,會犧牲一定準確率,分類性能不一定高
機器學習經典算法優缺點總結
資料來源: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是在給定需要標記的觀察序列的條件下,計算整個標記序列的聯合概率分佈,而不是在給定當前狀態條件下,定義下一個狀態的狀態分佈。
缺點:
訓練代價大、複雜度高
深入浅出 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
OPENCV ANN
機器學習 各種方法
優缺點
優點
缺點
列表
條列
比較
說明
機器學習算法優缺點 & 如何選擇
資料來源:https://mp.weixin.qq.com/s/g3nLEOmRHe6iAY9_E3zpGw
偏差:描述的是預測值(估計值)的期望E’與真實值Y之間的差距。偏差越大,越偏離真實數據。
方差:描述的是預測值P的變化範圍,離散程度,是預測值的方差,也就是離其期望值E的距離。方差越大,數據的分佈越分散。
機器學習必學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