一、學習內容:貝葉斯概率模型
二、知識點梳理
1. 相關概念
**生成模型:**在概率統計理論中, 生成模型是指能夠隨機生成觀測資料的模型,尤其是在給定某些隱含引數的條件下。它給觀測值和標註資料序列指定乙個聯合概率分布。
在機器學習中,生成模型可以用來直接對資料建模(例如根據某個變數的概率密度函式進行資料取樣),也可以用來建立變數間的條件概率分布。條件概率分布可以由生成模型根據貝葉斯定理形成。
常見的基於生成模型演算法有高斯混合模型和其他混合模型、隱馬爾可夫模型、隨機上下文無關文法、樸素貝葉斯分類器、aode分類器、潛在狄利克雷分配模型、受限玻爾茲曼機
判別模型:在機器學習領域判別模型是一種對未知資料 y 與已知資料 x 之間關係進行建模的方法。判別模型是一種基於概率理論的方法。已知輸入變數 x ,判別模型通過構建條件概率分布 p(y|x) ** y 。
常見的基於判別模型演算法有邏輯回歸、線性回歸、支援向量機、提公升方法、條件隨機場、人工神經網路、隨機森林、感知器
生成模型是所有變數的全概率模型,而判別模型是在給定觀測變數值前提下目標變數條件概率模型。因此生成模型能夠用於模擬(即生成)模型中任意變數的分布情況,而判別模型只能根據觀測變數得到目標變數的取樣。判別模型不對觀測變數的分布建模,因此它不能夠表達觀測變數與目標變數之間更複雜的關係。因此,生成模型更適用於無監督的任務,如分類和聚類。
2. 先驗概率、條件概率
條件概率: 就是事件a在事件b發生的條件下發生的概率。條件概率表示為p(a|b),讀作「a在b發生的條件下發生的概率」。
先驗概率: 在貝葉斯統計中,某一不確定量 p 的先驗概率分布是在考慮"觀測資料"前,能表達 p 不確定性的概率分布。它旨在描述這個不確定量的不確定程度,而不是這個不確定量的隨機性。這個不確定量可以是乙個引數,或者是乙個隱含變數。
後驗概率: 在貝葉斯統計中,乙個隨機事件或者乙個不確定事件的後驗概率是在考慮和給出相關證據或資料後所得到的條件概率。同樣,後驗概率分布是乙個未知量(視為隨機變數)基於試驗和調查後得到的概率分布。「後驗」在本文中代表考慮了被測試事件的相關證據。
通過上述西瓜的資料集來看
條件概率,就是在條件為瓜的顏色是青綠的情況下,瓜是好瓜的概率
先驗概率,就是常識、經驗、統計學所透露出的「因」的概率,即瓜的顏色是青綠的概率。
後驗概率,就是在知道「果」之後,去推測「因」的概率,也就是說,如果已經知道瓜是好瓜,那麼瓜的顏色是青綠的概率是多少。後驗和先驗的關係就需要運用貝葉斯決策理論來求解。
貝葉斯決策理論
貝葉斯決策論是概率框架下實施決策的基本方法,對分類任務來說,在所有相關概率都已知的理想情形下,貝葉斯決策論考慮如何基於這些概率和誤判損失來選擇最優的類別標記。
貝葉斯公式
極值問題情況下的每個類的分類概率
極值問題
很多時候遇到求出各種目標函式(object function)的最值問題(最大值或者最小值)。關於函式最值問題,其實在高中的時候我們就已經了解不少,最經典的方法就是:直接求出極值點。這些極值點的梯度為0。若極值點唯一,則這個點就是代入函式得出的就是最值;若極值點不唯一,那麼這些點中,必定存在最小值或者最大值(去除函式的左右的最端點),所以把極值代入函式,經對比後可得到結果。
請注意:並不一定所有函式的極值都可以通過設定導數為0的方式求 出。也就是說,有些問題中當我們設定導數為0時,未必能直接計算出滿足導數為0的點(比如邏輯回歸模型),這時候就需要利用數值計算相關的技術(最典型為梯度下降法,牛頓法……)。
下溢問題如何解決
數值下溢問題:是指計算機浮點數計算的結果小於可以表示的最小數,因為計算機的能力有限,當數值小於一定數時,其無法精確儲存,會造成數值的精度丟失,由上述公式可以看到,求概率時多個概率值相乘,得到的結果往往非常小;因此通常採用取對數的方式,將連乘轉化為連加,以避免數值下溢。
零概率問題如何解決?
零概率問題,就是在計算例項的概率時,如果某個量x,在觀察樣本庫(訓練集)中沒有出現過,會導致整個例項的概率結果是0.
在實際的模型訓練過程中,可能會出現零概率問題(因為先驗概率和反條件概率是根據訓練樣本算的,但訓練樣本數量不是無限的,所以可能出現有的情況在實際中存在,但在訓練樣本中沒有,導致為0的概率值,影響後面後驗概率的計算),即便可以繼續增加訓練資料量,但對於有些問題來說,資料怎麼增多也是不夠的。這時我們說模型是不平滑的,我們要使之平滑,一種方法就是將訓練(學習)的方法換成貝葉斯估計。
8. sklearn引數詳解¶
高斯樸素貝葉斯演算法是假設特徵的可能性(即概率)為高斯分布。
class sklearn.*****_bayes.gaussiannb(priors=none)
引數:priors:先驗概率大小,如果沒有給定,模型則根據樣本資料自己計算(利用極大似然法)。
var_smoothing:可選引數,所有特徵的最大方差
屬性:class_prior_:每個樣本的概率
class_count:每個類別的樣本數量
classes_:分類器已知的標籤型別
theta_:每個類別中每個特徵的均值
sigma_:每個類別中每個特徵的方差
epsilon_:方差的絕對加值方法
#貝葉斯的方法和其他模型的方法一致。
fit(x,y):在資料集(x,y)上擬合模型。
get_params():獲取模型引數。
predict(x):對資料集x進行**。
predict_log_proba(x):對資料集x**,得到每個類別的概率對數值。predict_proba(x):對資料集x**,得到每個類別的概率。
score(x,y):得到模型在資料集(x,y)的得分情況。
三、**實踐
from sklearn.*****_bayes import gaussiannb
from sklearn.datasets import load_iris
import pandas as pd
from sklearn.model_selection import train_test_split
iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
clf = gaussiannb().fit(x_train, y_train)
print(clf)
print (「classifier score:」, clf.score(x_test, y_test))
學習筆記第二次打卡
讀入文字 分詞建立字典,將每個詞對映到乙個唯一的索引 index 將文字從詞的序列轉換為索引的序列,方便輸入模型 建立詞典 class vocab object def init self,tokens,min freq 0,use special tokens false counter coun...
第二次打卡
主成分分析法 principal component analysis,pca 就是一種運用線性代數的知識來進行資料降維的方法,它將多個變數轉換為少數幾個不相關的綜合變數來比較全面地反映整個資料集。這是因為資料集中的原始變數之間存在一定的相關關係,可用較少的綜合變數來綜合各原始變數之間的資訊。這些綜...
動手學習pytorch第二次打卡
動手學習pytorch第二次打卡 1 錯題分析 1.下列模型不是由基礎塊重複堆疊而成的是 alexnet vggnin googlenet 答案解釋 選項1 錯誤,參考alexnet。選項2 正確,由vgg block組成。選項3 正確,由nin block組成。選項4 正確,由inception組...