1. 程式人生 > >正在學習的比較詳細的機器學習教程(不斷更新)

正在學習的比較詳細的機器學習教程(不斷更新)

使用MINIST資料集
https://blog.csdn.net/zhaohaibo_/article/d

// 獲取 minist 資料集
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("E:/python/data/minist", one_hot=True)   

機器學習實戰(一)——機器學習主要任務

https://blog.csdn.net/jiaoyangwm/article/details/79478066

  • 分類是機器學習的一項主要任務,主要是將例項資料劃分到合適的分類中。
  • 機器學習的另外一項任務是迴歸,主要是預測數值型的資料,比如通過資料值擬合曲線等。

分類和迴歸屬於監督學習
通過已有的訓練樣本(即已知資料及其對應的輸出)去訓練得到一個最優模型(這個模型屬於某個函式的集合,最優表示某個評價準則下是最佳的),再利用這個模型將所有的輸入對映為相應的輸出,對輸出進行簡單的判斷從而實現分類的目的。也就具有了對未知資料分類的能力。監督學習的目標往往是讓計算機去學習我們已經建立好的分類系統(模型)。

與監督學習相對應的是無監督學習
輸入資料沒有被標記,也沒有確定的結果。樣本資料類別未知,需要根據樣本間的相似性對樣本集進行分類(聚類,clustering)試圖使類內差距最小化,類間差距最大化。此時資料沒有類別資訊,也不會給定目標值。尋找描述資料統計值的過程稱之為密度估計。此外,無監督學習可以減少資料特徵的維度,以便我們可以使用二維或三維圖形更加直觀的展示資料資訊。
在這裡插入圖片描述


表1-2列出了機器學習的主要任務,以及解決相應問題的演算法。
在這裡插入圖片描述

機器學習實戰(二)——k-近鄰演算法

https://blog.csdn.net/jiaoyangwm/article/details/79480275

k近鄰法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一種基本分類與迴歸方法。它的工作原理是:存在一個樣本資料集合,也稱作為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一個數據與所屬分類的對應關係。輸入沒有標籤的新資料後,將新的資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k-近鄰演算法中k的出處,通常k是不大於20的整數。最後,選擇k個最相似資料中出現次數最多的分類,作為新資料的分類。

k-近鄰演算法沒有進行資料的訓練,直接使用未知的資料與已知的資料進行比較,得到結果。因此,可以說k-鄰近演算法不具有顯式的學習過程。
在這裡插入圖片描述
距離度量:
在這裡插入圖片描述
在這裡插入圖片描述
歸一化數值處理:
在這裡插入圖片描述
我的理解是:已知若干個一維矩陣向量及其所屬分類,給定一未知分類的矩陣向量,計算距離並按照從小到大的順序排列,取前k個分類結果,統計出現次數最多的結果,即為最終分類結果。
例如:做手寫字型識別,先將二進位制影象矩陣轉化為一維向量,進行計算(python中可以直接調相應的庫函式完成距離計算並進行統計)

機器學習實戰(四)——基於概率論的分類方法:樸素貝葉斯

https://blog.csdn.net/jiaoyangwm/article/details/79552267
樸素貝葉斯(naive Bayes)演算法是有監督的學習演算法,解決的是分類問題,如客戶是否流失、是否值得投資、信用等級評定等多分類問題。該演算法的優點在於簡單易懂、學習效率高、在某些領域的分類問題中能夠與決策樹、神經網路相媲美。但由於該演算法以自變數之間的獨立(條件特徵獨立)性和連續變數的正態性假設為前提,就會導致演算法精度在某種程度上受影響。
在統計資料的基礎上,依據某些特徵,計算各個類別的概率,從而實現分類。
“樸素”的解釋:
假設各個特徵之間相互獨立(在貝葉斯分類器上做了簡化)
樸素貝葉斯的基礎假設:

①每個特徵相互獨立;
②每個特徵的權重(或重要性)都相等,即對結果的影響程度都相同。

樸素貝葉斯具體實現步驟:
在這裡插入圖片描述

機器學習實戰(五)——Logistic 迴歸

https://blog.csdn.net/jiaoyangwm/article/details/79570864
https://blog.csdn.net/xlinsist/article/details/51236454
https://blog.csdn.net/xlinsist/article/details/51264829

機器學習實戰(六)——支援向量機

https://blog.csdn.net/jiaoyangwm/article/details/79579784
在這裡插入圖片描述
這些球叫做 「data」,把棍子 叫做 「classifier」分類器, 最大間隙trick 叫做「optimization」最優化, 拍桌子叫做「kernelling」, 那張紙叫做「hyperplane」超平面。
當資料為線性可分的時候,也就是可以用一根棍子將兩種小球分開的時候,只要將棍子放在讓小球距離棍子的距離最大化的位置即可,尋找該最大間隔的過程就叫做最優化。

但是一般的資料是線性不可分的,所以要將其轉化到高維空間去,用一張紙將其進行分類,空間轉化就是需要核函式,用於切分小球的紙就是超平面。
達到在統計樣本量較少的情況下,亦能獲得良好統計規律的目的。

SVM
通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,即支援向量機的學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。在這裡插入圖片描述
在保證決策面方向不變且不會出現錯分樣本的情況下移動決策面,會在原來的決策面兩側找到兩個極限位置(越過該位置就會產生錯分現象),如虛線所示。
虛線的位置由決策面的方向和距離原決策面最近的幾個樣本的位置決定。而這兩條平行虛線正中間的分界線就是在保持當前決策面方向不變的前提下的最優決策面。
兩條虛線之間的垂直距離就是這個最優決策面對應的分類間隔。顯然每一個可能把資料集正確分開的方向都有一個最優決策面(有些方向無論如何移動決策面的位置也不可能將兩類樣本完全分開),而不同方向的最優決策面的分類間隔通常是不同的,那個具有“最大間隔”的決策面就是SVM要尋找的最優解
而這個真正的最優解對應的兩側虛線所穿過的樣本點,就是SVM中的支援樣本點,稱為”支援向量”。
學習的目標是在特徵空間中找到一個分離超平面,能將例項分到不同的類中。
分離超平面的方程:w⋅x+b=0
方程由法向量w和截距b決定,可以用(w,b)來表示。
在這裡插入圖片描述
分離超平面將特徵空間劃分為兩部分,一部分為正類,一部分為負類,法向量指向的一側為正類,另一側為負類。
二次規劃: https://blog.csdn.net/lilong117194/article/details/78204994
SVM(1):理清分離超平面方程和法向量 https://blog.csdn.net/Jiajing_Guo/article/details/65628378在這裡插入圖片描述

機器學習系列(14)_SVM碎碎念part2:SVM中的向量與空間距離
https://blog.csdn.net/han_xiaoyang/article/details/52679559

資訊熵到底是什麼

https://blog.csdn.net/saltriver/article/details/53056816

一、線性迴歸和邏輯迴歸

https://blog.csdn.net/jiaoyangwm/article/details/81139362

二、SVM

https://blog.csdn.net/jiaoyangwm/article/details/81117958

機器學習實戰(九)樹迴歸

https://blog.csdn.net/jiaoyangwm/article/details/79631480

分類與迴歸區別?
logistic迴歸不是迴歸是分類

 logistic迴歸不是迴歸是分類

機器學習實戰(三)——決策樹

https://blog.csdn.net/jiaoyangwm/article/details/79525237#312-編寫程式碼計算經驗熵

[Machine Learning & Algorithm] 隨機森林(Random Forest)

http://www.cnblogs.com/maybe2030/p/4585705.html#_label6

TensorFlow入門深度學習–01.基礎知識

https://blog.csdn.net/drilistbox/article/details/79721099#111-安裝gpu版本。