Bayes分類器設計

? ? ? ?本篇文章是博主在人工智能等領域學習時,用于個人學習、研究或者欣賞使用,并基于博主對人工智能等領域的一些理解而記錄的學習摘錄和筆記,若有不當和侵權之處,指出后將會立即改正,還望諒解。文章分類在AI學習筆記

? ? ? AI學習筆記(14)---《Bayes分類器設計》

Bayes分類器設計

目錄

1.前言

2.相關知識

2.1貝葉斯決策的基本概念

2.2正態模式下最小誤判概率判決準則的具體形式

3.最小誤判概率準則判決原理原理

3.1基本方式

3.2貝葉斯分類器設計步驟

3.3分類器分類步驟

4.編程實現

4.1統計判決貝葉斯MATLAB代碼

4.2?正態分布模式的貝葉斯判別MATLAB代碼


1.前言

????????理解并掌握貝葉斯判決的一般性原理,設計并實現一個基礎貝葉斯分類器,能夠根據自己的設計對貝葉斯決策理論算法有一個深刻認識。

????????正態模式下最小誤判概率判決準則的具體形式;分類器分類步驟。


2.相關知識

2.1貝葉斯決策的基本概念

? ? ? ? 1.貝葉斯公式:

設實驗E的樣本空間為SAE的事件,B1?,B2?,...,Bn?S的一個劃分,且P(A)>0,P(Bi?)>0,(i=1,2,...,n),則

????????2.先驗概率:

????????P(wi?)表示類wi?出現的先驗概率,簡稱類wi?的概率。

????????3.后驗概率:

????????P(wi?∣x)表示x出現條件下類wi?出現的概率,稱其為類別的后驗概率,對于模式識別來講,可以理解為x來自類wi?的概率。

????????4.類概率:

????????p(x∣wi?)表示在類wi?條件下的概率密度,即類wi?模式x的概率分布密度,簡稱為類概密。

2.2正態模式下最小誤判概率判決準則的具體形式

正態分布模式的貝葉斯判決函數;

?????????綜上我們可以知道,di?(x)是一超二次曲面,如wi?類和wj?類相鄰,則它們的決策界面方程為di?(x)=dj?(x),一般來說,正態分布的兩個模式類別之間用一個而此判決界面就可以得到最有效果。由于對數函數是單調增函數,所以判決規則仍為:


3.最小誤判概率準則判決原理原理

3.1基本方式

????????對于兩類問題,統計判決的基本方式是根據類的概率和概密將模式的特征空間Ω劃分成兩個判決域D1?D2?,即

?3.2兩類問題?

????????使用基本方式來分類時,會發生兩種錯誤,一種是把實際屬于w1?類的模式判定為w2?類,發生這種錯誤的原因是屬于w1?的模式在特征空間中散步到Ω2?中去,從而將其判定為w2?類,這時的誤判概率為:

同理將實際屬于w2?類的模式判定為w1?類時的誤判概率為:

如圖所示:

?我們的目標是總體上、統計上誤判最少,因此所使用的判決準則是使得誤判概率最小,這等價于使正確分類識別概率P(c)最大,即

經過推導,最終我們可以得到幾種等價的最小誤判概率準則下的判決規則:

?將二類問題同樣的分析方法運用到多類問題,可得到對于多類問題,最小誤判概率準則有如下幾種等價的判決規則:

3.2貝葉斯分類器設計步驟

? ? ? ? 1.計算先驗概率P(wi?):通過計算各類樣本在總樣本中占的比例得到先驗概率;

???????????P(wi?)≈Ni?/N,其中Ni?為第i類樣本的樣本數,N為樣本總數

? ? ? ? 2.計算類概率密度p(x∣wi?)

? ? ? ? 3.利用貝葉斯公式求后驗概率P(wi?∣x)

? ? ? ? 4.根據最小誤判概率準則進行判決,后驗概率中最大值對應的類別即為識別對象的分類類別

3.3分類器分類步驟
  1. 確定類別wi?,并提取每一類所對應的已知樣本;

  2. 特征提取,從樣本中提取出一些可以作為區分不同類別的n個不同特征;

  3. 分別計算每一個類別的樣本所對應的特征,計算出其均值矢量ui?和協方差矩陣Σ,即特征中心;

  4. 對特征進行歸一化操作,使其去量綱化;

  5. 利用選擇的判決準則,對待分類樣本進行分類。


4.編程實現

4.1統計判決貝葉斯MATLAB代碼

x = [-3.9847 -3.5549 -1.2401 -0.9780 -0.7932 -2.8531 -2.7605 -3.7287 -3.5414 -2.2692 -3.4549 -3.0752 -3.9934 2.8792 -0.9780 0.7932 1.1882 3.0682 -1.5799 -1.4885 0.7431 -0.4221 -1.1186 4.2532]; % 樣本數據
pw = [0.9 0.1]; % 先驗概率% 類條件概率分布正態分布分別為N(e1,a1)和N(e2,a2)
e1 = -2; a1 = 0.5; % 類條件分布1的均值和標準差
e2 = 2; a2 = 2; % 類條件分布2的均值和標準差
m = numel(x); % 樣本數量
result = zeros(1, m); % 初始化結果向量% 計算后驗概率 
p_w1_x = zeros(1, m); % 初始化后驗概率p(w1|x)
p_w2_x = zeros(1, m); % 初始化后驗概率p(w2|x)
for i = 1:m% 計算p(w1|x)后驗概率p_w1_x(i) = (normpdf(x(i), e1, a1) * pw(1)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));% 計算p(w2|x)后驗概率p_w2_x(i) = (normpdf(x(i), e2, a2) * pw(2)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));
end% 根據最小誤判概率準則進行判決,結果存入result中
for i = 1:mif p_w1_x(i) > p_w2_x(i)result(i) = 0; % 歸類為類別1elseresult(i) = 1; % 歸類為類別2end
endfprintf("%4d", result); % 輸出結果
fprintf("\n");

4.2?正態分布模式的貝葉斯判別MATLAB代碼

pkg load statisticsfunction GuassianBayesModel(w, p, X)%%%%%%%%%% Begin %%%%%%%%%%[row, col, class] = size(w); % 獲取數據維度信息(行、列和類別數量)% 根據給出的樣本數據,求各個類的均值u(:, :, 1) = sum(w(:, :, 1)) ./ row; % 計算類別1的均值u(:, :, 2) = sum(w(:, :, 2)) ./ row; % 計算類別2的均值u(:, :, 3) = sum(w(:, :, 3)) ./ row; % 計算類別3的均值% 求各個類的協方差矩陣sigma(:, :, 1) = cov(w(:, :, 1)); % 計算類別1的協方差矩陣sigma(:, :, 2) = cov(w(:, :, 2)); % 計算類別2的協方差矩陣sigma(:, :, 3) = cov(w(:, :, 3)); % 計算類別3的協方差矩陣% 構建判別函數,計算點到每個類的馬氏距離以及歐氏距離md = zeros(1, class); % 初始化馬氏距離數組ed = zeros(1, class); % 初始化歐氏距離數組P = zeros(1, class); % 初始化概率數組for i = 1:classmd(i) = sqrt((X - u(:, :, i)) * inv(sigma(:, :, i)) * (X - u(:, :, i))'); % 計算馬氏距離ed(i) = sqrt(sum((X - u(:, :, i)) .^ 2)); % 計算歐氏距離P(i) = p(i) * mvnpdf(X, u(:, :, i), sigma(:, :, i)); % 計算后驗概率end%%%%%%%%%% End %%%%%%%%%%% 判斷樣本屬于哪個類的概率最高,并顯示點到每個類的馬氏距離和歐氏距離maxP = max(P); % 找出最大概率result = find(P == maxP); % 找出對應的類別fprintf("點[%s]關于第1、2、3類的判別函數值分別為:%s %s %s\n", num2str(X), num2str(P(1)), num2str(P(2)), num2str(P(3)));fprintf("點[%s]到第1、2、3類的馬氏距離為:%s %s %s\n", num2str(X), num2str(md(1)), num2str(md(2)), num2str(md(3)));fprintf("點[%s]到第1、2、3類的歐氏距離為:%s %s %s\n", num2str(X), num2str(ed(1)), num2str(ed(2)), num2str(ed(3)));fprintf("點[%s]屬于第%s類\n", num2str(X), num2str(result));
end% w1, w2, w3三類散點
w = zeros(10, 3, 3);
w(:, :, 1) = [-5.01 -8.12 -3.68;...-5.43 -3.48 -3.54;...1.08 -5.52  1.66;...0.86 -3.78 -4.11;...-2.67  0.63  7.39;...4.94  3.29  2.08;...-2.51  2.09 -2.59;...-2.25 -2.13 -6.94;...5.56  2.86 -2.26;...1.03 -3.33  4.33];w(:, :, 2) = [-0.91 -0.18 -0.05;...1.30 -0.206 -3.53;...-7.75 -4.54 -0.95;...-5.47  0.50  3.92;...6.14  5.72 -4.85;...3.60  1.26  4.36;...5.37 -4.63 -3.65;...7.18  1.46 -6.66;...-7.39  1.17  6.30;...-7.50 -6.32 -0.31];w(:, :, 3) = [ 5.35  2.26  8.13;...5.12  3.22 -2.66;...-1.34 -5.31 -9.87;...4.48  3.42  5.19;...7.11  2.39  9.21;...7.17  4.33 -0.98;...5.75  3.97  6.65;...0.77  0.27  2.41;...0.90 -0.43 -8.71;...3.52 -0.36  6.43];% 設置各類別先驗概率
pw = [1/3 1/3 1/3];% 樣本矢量
X1 = [1 2 1];
X2 = [5 3 2];
X3 = [0 0 0];% 調用高斯型Bayes判別函數, 輸出判別函數值、馬氏距離和判別結果
GuassianBayesModel(w, pw, X1);
GuassianBayesModel(w, pw, X2);
GuassianBayesModel(w, pw, X3);

? ? ?文章若有不當和不正確之處,還望理解與指出。由于部分文字、圖片等來源于互聯網,無法核實真實出處,如涉及相關爭議,請聯系博主刪除。如有錯誤、疑問和侵權,歡迎評論留言聯系作者,或者私信聯系作者。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37662.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37662.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37662.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

東方博宜 OJ 1201-1300

目錄 1268:【基礎】高精度加法 1269:【基礎】高精度減法 1280:【基礎】求 2 的 n 次方 1281:【基礎】求 222222?222?2 1285:【基礎】計算 N 的階乘 1286:【基礎】高精度乘單精度 1287:【基礎】高精…

第一百三十三節 Java數據類型教程 - Java基本數據類型

Java數據類型教程 - Java基本數據類型 Java定義了八種基本類型的數據:byte,short,int,long,char,float,double和boolean。 基本類型通常被稱為簡單類型。 這些可以分為四組: Integers - 包括byte&#x…

求推薦幾款http可視化調試工具?

Postman 非常流行的API調試工具,適用于構建、測試和文檔化APIs。它支持各種HTTP方法,有強大的集合和環境管理功能,以及代碼生成能力。 BB-API 是一款旨在提升開發效率的工具,它專注于提供簡約、完全免費且功能強大的HTTP模擬請…

目標檢測算法

一、緒論 1.1 目標檢測算法的定義和背景 1.2 目標檢測算法在計算機視覺領域的重要性 二、目標檢測算法的發展歷程 2.1 傳統目標檢測算法 2.2 基于深度學習的目標檢測算法 2.3 目標檢測算法的評價指標 三、目標檢測算法的關鍵技術 3.1 區域建議網絡(RPN) 3.2 卷積神經…

springmvc快速上手

一、創建工程 1、創建maven工程&#xff0c;添加maven-archetype-webapp模版 2、添加依賴 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.co…

每日一題——Python實現PAT乙級1059 C語言競賽(舉一反三+思想解讀+逐步優化)四千字好文

一個認為一切根源都是“自己不夠強”的INTJ 個人主頁&#xff1a;用哲學編程-CSDN博客專欄&#xff1a;每日一題——舉一反三Python編程學習Python內置函數 Python-3.12.0文檔解讀 目錄 我的寫法 時間復雜度分析 空間復雜度分析 代碼優化建議 總結 我要更強 優化方法…

macos Darwin安裝faiss-cpu

文章目錄 macos 使用brew instll fass, 后python3.12執行引用faiss包功能出現的問題 安裝時遇到問題如下 ModuleNotFoundError Traceback (most recent call last) File ~/Src/ai/framework/langchain/.venv/lib/python3.12/site-packages/langchain_co…

Spring事務的實現

Spring事務的實現分為編程式事務和聲明式事務。 編程式事務 編程式事務管理需要開發者在代碼中顯式地調用事務管理相關的方法,如`beginTransaction()`、`commit()`和`rollback()`等。在Spring中,通常通過以下兩種方式來實現編程式事務: 使用`TransactionTemplate`,`Tran…

macOS 安裝redis

安裝Redis在macOS上通常通過Homebrew進行&#xff0c;Homebrew是macOS上一個流行的包管理器。以下是安裝Redis的步驟&#xff1a; 一 使用Homebrew安裝Redis 1、安裝Homebrew&#xff08;如果尚未安裝&#xff09;&#xff1a; 打開終端&#xff08;Terminal&#xff09;并執…

.NET周刊【6月第4期 2024-06-23】

國內文章 C#.Net筑基-集合知識全解 https://www.cnblogs.com/anding/p/18229596 .Net中提供了數組、列表、字典等多種集合類型&#xff0c;分為泛型和非泛型集合。泛型集合具有更好的性能和類型安全性。集合的基礎接口包括IEnumerator、IEnumerable、ICollection、IList、ID…

Gradio 4.37.1官方教程二:Blocks

文章目錄 一、Blocks及事件監聽器1.1 Blocks結構1.2 事件監聽器的類型1.3 多數據流1.4 多輸入組件1.5 多輸出組件1.6 更新組件配置1.7 添加示例1.8 連續運行事件1.9 持續運行事件1.9.1 every參數1.9.2 load方法1.9.3 change方法 1.10 收集事件數據1.11 綁定多個觸發器到同一函數…

基于線調頻小波變換的一維時間序列時頻分析方法(MATLAB)

在機械故障診斷領域,振動信號的處理常采用以快速傅立葉變換為基礎的相關分析、幅值分析、頻譜分析等時域和頻域分析方法。但經典的FFT存在固有缺點,即它雖然在頻域范圍內是完全局部化的,但是它不包含任何時域信息,因而不適于分析非平穩信號。近年來涌現的各種時頻分析方法(短時…

【刷題】初步認識深搜(DFS)

送給大家一句話&#xff1a; 擁有希望的人&#xff0c;和漫天的星星一樣&#xff0c;是永遠不會孤獨的。 -- 《星游記》 初步認識深搜&#xff08;DFS&#xff09; dfs算法二叉樹中的深搜Leetcode 129. 求根節點到葉節點數字之和題目描述算法思路 Leetcode 814. 二叉樹剪枝題…

Redis-實戰篇-緩存更新策略(內存淘汰、超時剔除、主動更新)

文章目錄 1、緩存更新策略1.1、內存淘汰1.2、超時剔除1.3、主動更新 2、業務場景&#xff1a;3、主動更新在企業中業務實現有三種方式3.1、Cache Aside Pattern3.1.1、操作緩存和數據庫時有三個問題需要考慮&#xff1a;3.1.1.1、刪除緩存還是更新緩存&#xff1f;3.1.1.2、如何…

數據同步軟件有哪些

數據同步軟件有哪些呢&#xff1f;隨著企業規模的擴大&#xff0c;企業數據也積累得越來越多&#xff0c;萬一發生宕機風險&#xff0c;那么這個損失將不可估量。所以為了容災備用&#xff0c;我們往往需要將數據同步到另一臺備胎服務器上&#xff0c;進行冗余。 那么需要同步的…

centos7.9 python3環境(virtualenv)搭建及所遇錯誤

人望山&#xff0c;魚窺荷&#xff0c;真正喜歡想要的&#xff0c;沒有一樣可以輕易得到。 目錄 # 1. 解決版本沖突問題--建議不要跳過(一定要查看軟鏈接是否鏈接正確) # 2. python3(virtualenv)環境搭建 # 3. virtualenv常用命令 # 4. 所遇錯誤解析 ## 4.1 遇到 No modul…

惠海 H6246低功耗DC/DC降壓型恒壓芯片60V降3.3V5V12V 藍牙模塊 單片機供電

1.產品描述 H6246是一種內置60V耐壓MOS&#xff0c;支持輸入高達48V的高壓降壓開關控制器&#xff0c;可以向負載提供0.3A的連續電流。H6246支持輸出恒定電壓&#xff0c;可以通過調節VFB采樣電阻來設置輸出電壓&#xff0c;同時支持最大電流限制&#xff0c;可以通過修改CS采…

操作系統期末復習考題二

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文??????三、總結&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&am…

【資源調度】1-何為調度?

導讀&#xff1a;本期是全網最全【資源調度】系列推文的第1期(共50期左右)。我們將對調度的定義與作用、計劃與調度的關系、調度問題的拆解做出詳細介紹&#xff0c;使大家對【資源調度】問題有了一個整體的認識&#xff0c;為后續的內容奠定基礎。 作者1&#xff1a;張哲銘&am…

個人搭建cppreference網站

近日,由于購買的騰訊云服務器要過期了,之前在服務器搭建的cppreference也要重新搭建,故寫下此文章 cppreference的訪問速度也慢,故自己WSL子系統簡單搭鍵一下是個不錯的選擇 環境準備 首先,自己先安裝Nginx,在網上找安裝教程即可下載cppreference網站資源包:https://pan.baidu…