從昨天變清晰的那張圖檔開始,一個肥腸簡單的機器學習入門實驗(鬼知道我為什麼敲了一晚上)。
0x01 随機數生成
先看實驗要求:

生成随機數,50個來自T類M(0,1),50個來自F類N(1,1)
0x02 寫分類器
可知需要寫一個分類器
以下算法介紹來自百度百科,code修改自matlab函數庫自帶exp
K近鄰分類器 (KNN)
鄰近算法,或者說K最近鄰(kNN,k-NearestNeighbor)分類算法是資料挖掘分類技術中最簡單的方法之一。所謂K最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。
kNN算法的核心思想是如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數屬于某一個類别,則該樣本也屬于這個類别,并具有這個類别上樣本的特性。該方法在确定分類決策上隻依據最鄰近的一個或者幾個樣本的類别來決定待分樣本所屬的類别。
kNN方法在類别決策時,隻與極少量的相鄰樣本有關。由于kNN方法主要靠周圍有限的鄰近的樣本,而不是靠判别類域的方法來确定所屬類别的,是以對于類域的交叉或重疊較多的待分樣本集來說,kNN方法較其他方法更為适合。
随機森林分類器(Random Forest)
在機器學習中,随機森林是一個包含多個決策樹的分類器, 并且其輸出的類别是由個别樹輸出的類别的衆數而定。 Leo Breiman和Adele Cutler發展出推論出随機森林的算法。 而 "Random Forests" 是他們的商标。
這個術語是1995年由貝爾實驗室的Tin Kam Ho所提出的随機決策森林(random decision forests)而來的。這個方法則是結合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"以建造決策樹的集合。
樸素貝葉斯(NBM)
樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設的分類方法。最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBM)。
和決策樹模型相比,樸素貝葉斯分類器(Naive Bayes Classifier,或 NBC)發源于古典數學理論,有着堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數很少,對缺失資料不太敏感,算法也比較簡單。
理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為NBC模型假設屬性之間互相獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正确分類帶來了一定影響。
內建學習方法
內建學習是使用一系列學習器進行學習,并使用某種規則把各個學習結果進行整合進而獲得比單個學習器更好的學習效果的一種機器學習方法。一般情況下,內建學習中的多個學習器都是同質的"弱學習器"。
線性判别分析(LDA)
線性判别分析(linear discriminant analysis,LDA)是對費舍爾的線性鑒别方法的歸納,這種方法使用統計學,模式識别和機器學習方法,試圖找到兩類物體或事件的特征的一個線性組合,以能夠特征化或區分它們。所得的組合可用來作為一個線性分類器,或者,更常見的是,為後續的分類做降維處理。
支援向量機(SVM)
支援向量機(Support Vector Machine, SVM)是一類按監督學習(supervised learning)方式對資料進行二進制分類(binary classification)的廣義線性分類器(generalized linear classifier),其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane) 。
SVM使用鉸鍊損失函數(hinge loss)計算經驗風險(empirical risk)并在求解系統中加入了正則化項以優化結構風險(structural risk),是一個具有稀疏性和穩健性的分類器 [2] 。SVM可以通過核方法(kernel method)進行非線性分類,是常見的核學習(kernel learning)方法之一 。
0x03 統計查準率和查全率(KNN為例)
0x04 總結
機器學習、深度學習、AI,我是暈了,你呢?