1. 程式人生 > >經典的機器學習模型(壹)

經典的機器學習模型(壹)

1 K近鄰演算法K-Nearest Neighbor (k-NN)

KNN是通過測量不同特徵值之間的距離進行分類。它的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,其中K通常是不大於20的整數。KNN演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。
演算法描述:
1)計算測試資料與各個訓練資料之間的距離;
2)按照距離的遞增關係進行排序;
3)選取距離最小的K個點;
4)確定前K個點所在類別的出現頻率;
5)返回前K個點中出現頻率最高的類別作為測試資料的預測分類。

#coding:utf-8
from numpy import *
import operator
##給出訓練資料以及對應的類別
def createDataSet():
    group = array([[1.0,2.0],[1.2,0.1],[0.1,1.4],[0.3,3.5]])
    labels = ['A','A','B','B']
    return group,labels

###通過KNN進行分類
def classify(input,dataSet,label,k):
    dataSize = dataSet.shape[0]
    ####計算歐式距離
    diff =
tile(input,(dataSize,1)) - dataSet sqdiff = diff ** 2 squareDist = sum(sqdiff,axis = 1)###行向量分別相加,從而得到新的一個行向量 dist = squareDist ** 0.5 ##對距離進行排序 sortedDistIndex = argsort(dist)##argsort()根據元素的值從大到小對元素進行排序,返回下標 classCount={} for i in range(k): voteLabel = label[
sortedDistIndex[i]] ###對選取的K個樣本所屬的類別個數進行統計 classCount[voteLabel] = classCount.get(voteLabel,0) + 1 ###選取出現的類別次數最多的類別 maxCount = 0 for key,value in classCount.items(): if value > maxCount: maxCount = value classes = key return classes
#-*-coding:utf-8 -*-
import sys
sys.path.append("...檔案路徑...")
import KNN
from numpy import *
dataSet,labels = KNN.createDataSet()
input = array([1.1,0.3])
K = 3
output = KNN.classify(input,dataSet,labels,K)
print("測試資料為:",input,"分類結果為:",output)

KNN用來回歸預測(KNN for Regression (Prediction))

knn

2 樸素貝葉斯 Naïve Bayes

2.1 貝葉斯法則 (Bayes Rule)

P ( Y X 1 , . . . . X n ) = P ( X 1 , . . . . X n Y ) P ( Y ) P ( X 1 , . . . X n ) P(Y|X_1,....X_n)=\frac{P(X_1,....X_n|Y)P(Y)}{P(X_1,...X_n)}
P ( X 1 , . . . . X n Y ) P(X_1,....X_n|Y) 是似然概率, P ( Y ) P(Y) 是先驗概率, P ( X 1 , . . . X n ) P(X_1,...X_n) 是標準化常量。

2.2 貝葉斯假設

在給定標籤(類別Y)的情況下,所有的特徵都是獨立的。也就是說:
P ( X 1 , . . . . X n Y ) = i = 1 n P ( X i Y ) P(X_1,....X_n|Y)=\prod_{i=1}^nP(X_i|Y)

2.3練習

例題
整理資料:
整理的資料
預測資料
X = ( O u t l o o k = S u n n y , T e m p e r a t u r e = C o o l , H u m i d i t y = H i g h , W i n d = S t r o n g ) X^{'}=(Outlook=Sunny,Temperature=Cool,Humidity=High,Wind=Strong) 屬於什麼標籤。
P ( O u t l o o k = S u n n y Y e s ) = 2 9 P(Outlook=Sunny|Yes)=\frac{2}{9}
P ( T e m p e r a t u r e = C o o l Y e s ) = 3 9 P(Temperature=Cool|Yes)=\frac{3}{9}
P ( H u m i d i t y = H i g h Y e s ) = 3 9 P(Humidity=High|Yes)=\frac{3}{9}
P ( W i n d = S t r o n g Y e s ) = 3 9 P(Wind=Strong|Yes)=\frac{3}{9}
P ( Y e s ) = 9 14 P(Yes)=\frac{9}{14}
P ( O u t l o o k = S u n n y N o ) = 3 5 P(Outlook=Sunny|No)=\frac{3}{5}
P ( T e m p e r a t u r e = C o o l N o ) = 1 5 P(Temperature=Cool|No)=\frac{1}{5}
P ( H u m i d i t y = H i g h N o ) = 4 5 P(Humidity=High|No)=\frac{4}{5}

相關推薦

經典機器學習模型

1 K近鄰演算法K-Nearest Neighbor (k-NN) KNN是通過測量不同特徵值之間的距離進行分類。它的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,其中K通常是不大於20的整數。KNN演算法中

經典機器學習模型

1 CART(Classification and Regression Tree) 決策樹的本質就是將空間分為若干個區域,對空間向量的垂直分割。 給定訓練資料 D

經典機器學習模型

決策樹 ID3 演算法的核心問題是選取在樹的每個結點要測試的屬性。我們希望選擇的是最有 助於分類例項的屬性。那麼衡量屬性價值的一個好的定量標準是什麼呢?這裡將定義一 個統計屬性,稱為“資訊增益(information gain)”,用來衡量給定的屬性區分訓練樣例 的能力。ID3 演算

機器學習筆記線性迴歸模型

一、線性迴歸模型 (一)引入—梯度下降演算法 1. 線性假設: 2. 方差代價函式:   3. 梯度下降:   4. : learning rate (用來控制我們在梯度下降時邁出多大的步子,值較大,梯度下降就很迅速) 值過大易造成無法收斂到minimum(每一步邁更大)

機器學習筆記十三:TensorFlow實戰五經典卷積神經網路: LeNet -5

1 - 引言 之前我們介紹了一下卷積神經網路的基本結構——卷積層和池化層。通過這兩個結構我們可以任意的構建各種各樣的卷積神經網路模型,不同結構的網路模型也有不同的效果。但是怎樣的神經網路模型具有比較好的效果呢? 下圖展示了CNN的發展歷程。 經過人們不斷的嘗試,誕生了許多有

一文掌握常用的機器學習模型文末福利

AI 科技大本營按:本文節選自微軟亞洲研究院機器學習研究團隊劉鐵巖、陳薇、王太峰、高飛合著的《分散式機器學習:演算法、理論與實踐》一書。為了讓大家更好地理解分散式機器學習,AI科技大本營聯合華章科技特別邀請到了本書的作者之一——微軟亞洲研究院副院長劉鐵巖老師進行線上公開課分享,詳

機器學習筆記Logistic迴歸模型

Logistic迴歸模型 1. 模型簡介: 線性迴歸往往並不能很好地解決分類問題,所以我們引出Logistic迴歸演算法,演算法的輸出值或者說預測值一直介於0和1,雖然演算法的名字有“迴歸”二字,但實際上Logistic迴歸是一種分類演算法(classification y = 0 or 1)。 Log

機器學習筆記 第三章 線性模型

3.1 基本形式 樣本x由d個屬性描述 x= (x1; x2;…; xd), 線性模型試圖學得一個通過屬性的線性組合來進行預測的函式: 向量形式: w和b學得之後,模型就得以確定. 3.2 線性迴歸 線性迴歸試圖學得 為確定w,b,學習到泛化效能最好的模型

深入理解JAVA虛擬機器學習筆記JVM記憶體模型

一、JVM記憶體模型概述 JVM記憶體模型其實也挺簡單的,這裡先提2個知識點: 1、組成:java堆,java棧(即虛擬機器棧),本地方法棧,方法區和程式計數器。 2、是否共享:其中方法區和堆區是執行緒共享的,虛擬機器棧,本地方法棧和程式計數器是執行緒私有的,也稱執行緒

機器學習筆記EM演算法及實踐以混合高斯模型GMM為例來次完整的EM

今天要來討論的是EM演算法。第一眼看到EM我就想到了我大楓哥,EM Master,千里馬,RUA!!!不知道看這個部落格的人有沒有懂這個梗的。好的,言歸正傳,今天要講的EM演算法,全稱是Expectation maximization,期望最大化。怎麼個意思呢,就是給你一

機器學習cs229——區域性加權迴歸、邏輯迴歸、感知器、牛頓方法、廣義線性模型

 首先,我們先來討論一下欠擬合(underfitting)和過擬合(overfitting)問題。比如我們同樣採用線性迴歸來對一組房屋價格和房屋大小的資料進行擬合,第一種情況下我們只選取一個數據特徵(比如房屋大小 x)採用直線進行擬合。第二種情況下選取兩個資料特徵(比如房屋大

機器學習筆記:線性模型

線性模型是機器學習常用的眾多模型中最簡單的模型,但卻蘊含著機器學習中一些重要的基本思想。許多功能更為強大的非線性模型可線上性模型的基礎上通過引入層級結構或高維對映得到,因此瞭解線性模型對學習其他機器學習模型具有重要意義。 本文主要介紹機器學習中常用的線性模型,內

機器學習筆記:概率圖模型

機器學習最重要的任務,是根據一些已觀察到的證據(例如訓練樣本)來對感興趣的未知變數(例如類別標記)進行估計和推測。概率模型提供了一種描述框架,將學習任務歸結為計算變數的概率分佈。概率圖模型(probabilistic graphical model,簡稱PGM)是一類用圖來表達變數相關關係的概率模型

機器學習基礎——詞集模型SOW和詞袋模型BOW

(1)詞集模型:Set Of Words,單詞構成的集合,集合自然每個元素都只有一個,也即詞集中的每個單詞都只有一個 (2)詞袋模型:Bag Of Words,如果一個單詞在文件中出現不止一次,並統計

機器學習系列——迴歸模型

迴歸(Regression)模型是指機器學習方法學到的函式的輸出是連續實數值,迴歸模型可以用於預測或者分類,這篇部落格中主要整理用於預測的線性迴歸模型和多項式迴歸模型。 線性迴歸 按照機器學習建模的三個步驟,首先需要確定選用的模型,這裡就是線性迴歸(Li

機器學習筆記:關於隱含馬爾科夫模型

這篇文章是我在看完吳軍老師的數學之美一書中關於隱馬爾科夫模型之後所寫,旨在記錄一下自己對隱馬爾科夫模型的認識, 隱馬爾科夫模型我在很早之前就有所接觸,在學習語音識別的時候,會涉及到隱馬爾科夫模型,當時是完全不懂,現在雖然還是一知半解,因為沒有再次去使用,接下來的主攻方向是機器視覺,對隱馬爾可

機器學習演算法:邏輯迴歸模型Logistic Regression, LR

轉自:https://blog.csdn.net/weixin_39910711/article/details/81607386 線性分類器:模型是引數的線性函式,分類平面是(超)平面;非線性分類器:模型分介面可以是曲面或者超平面的組合。 典型的線性分類器有感知機,LDA,邏輯斯特迴歸,SVM

公開課機器學習筆記7Softmax迴歸模型

在本節中,我們介紹Softmax迴歸模型,該模型是logistic迴歸模型在多分類問題上的推廣,在多分類問題中,類標籤  可以取兩個以上的值。 Softmax迴歸模型對於諸如MNIST手寫數字分類等問題是很有用的,該問題的目的是辨識10個不同的單個數字。Softmax迴歸

機器學習1——學習樸素貝葉斯-三種模型理論+python程式碼程式設計例項

本文來源於: 部落格:http://blog.csdn.net/u012162613/article/details/48323777 http://blog.csdn.net/zhihaoma/article/details/51052064  感謝作者的分享,非常感謝

非監督學習之混合高斯模型和EM演算法——Andrew Ng機器學習筆記

0、內容提要 這篇博文主要介紹: - 混合高斯模型(mixture of Gaussians model) - EM演算法(Expectation-Maximization algorithm) 1、引入 假設給定一個訓練集{x(1),...,x(m)