成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

樸素貝葉斯的學(xué)習(xí)與分類

開發(fā) 開發(fā)工具
樸素貝葉斯基于貝葉斯定理,它假設(shè)輸入隨機變量的特征值是條件獨立的,故稱之為“樸素”。簡單介紹貝葉斯定理。

乍看起來似乎是要求一個概率,還要先得到額外三個概率,有用么?其實這個簡單的公式非常貼切人類推理的邏輯,即通過可以觀測的數(shù)據(jù),推測不可觀測的數(shù)據(jù)。舉個例子,也許你在辦公室內(nèi)不知道外面天氣是晴天雨天,但是你觀測到有同事帶了雨傘,那么可以推斷外面八成在下雨。

若X 是要輸入的隨機變量,則Y 是要輸出的目標類別。對X 進行分類,即使求的使P(Y|X) ***的Y值。若X 為n 維特征變量 X = {A1, A2, …..An} ,若輸出類別集合為Y = {C1, C2, …. Cm} 。

X 所屬最有可能類別 y = argmax P(Y|X), 進行如下推導(dǎo):

樸素貝葉斯的學(xué)習(xí)

有公式可知,欲求分類結(jié)果,須知如下變量:

各個類別的條件概率,

輸入隨機變量的特質(zhì)值的條件概率

示例代碼:

 

  1. import copy 
  2.  
  3. class native_bayes_t: 
  4.      
  5.     def __init__(self, character_vec_, class_vec_): 
  6.         ""
  7.         構(gòu)造的時候需要傳入特征向量的值,以數(shù)組方式傳入 
  8.         參數(shù)1 character_vec_ 格式為 [("character_name",["","",""])] 
  9.         參數(shù)2 為包含所有類別的數(shù)組 格式為["class_X""class_Y"
  10.         ""
  11.         self.class_set = {} 
  12.         # 記錄該類別下各個特征值的條件概率 
  13.         character_condition_per = {} 
  14.         for character_name in character_vec_: 
  15.             character_condition_per[character_name[0]] = {} 
  16.             for character_value in character_name[1]: 
  17.                 character_condition_per[character_name[0]][character_value] = { 
  18.                     'num'           : 0,  # 記錄該類別下該特征值在訓(xùn)練樣本中的數(shù)量, 
  19.                     'condition_per' : 0.0 # 記錄該類別下各個特征值的條件概率 
  20.                 } 
  21.         for class_name in class_vec: 
  22.             self.class_set[class_name] = { 
  23.                 'num'                     : 0,  # 記錄該類別在訓(xùn)練樣本中的數(shù)量, 
  24.                 'class_per'               : 0.0, # 記錄該類別在訓(xùn)練樣本中的先驗概率, 
  25.                 'character_condition_per' : copy.deepcopy(character_condition_per), 
  26.             } 
  27.  
  28.         #print("init", character_vec_, self.class_set) #for debug 
  29.  
  30.     def learn(self, sample_): 
  31.         ""
  32.         learn 參數(shù)為訓(xùn)練的樣本,格式為 
  33.         [ 
  34.             { 
  35.                 'character'  : {'character_A':'A1'}, #特征向量 
  36.                 'class_name' : 'class_X'             #類別名稱 
  37.             } 
  38.         ] 
  39.         ""
  40.         for each_sample in sample: 
  41.             character_vec  = each_sample['character'
  42.             class_name     = each_sample['class_name'
  43.  
  44.             data_for_class = self.class_set[class_name] 
  45.             data_for_class['num'] += 1 
  46.  
  47.             # 各個特質(zhì)值數(shù)量加1 
  48.             for character_name in character_vec: 
  49.                 character_value = character_vec[character_name] 
  50.                 data_for_character = data_for_class['character_condition_per'][character_name][character_value] 
  51.  
  52.                 data_for_character['num'] += 1 
  53.  
  54.         # 數(shù)量計算完畢, 計算最終的概率值 
  55.         sample_num = len(sample) 
  56.         for each_sample in sample: 
  57.             character_vec = each_sample['character'
  58.             class_name    = each_sample['class_name'
  59.  
  60.             data_for_class = self.class_set[class_name] 
  61.             # 計算類別的先驗概率 
  62.             data_for_class['class_per'] = float(data_for_class['num']) / sample_num 
  63.  
  64.             # 各個特質(zhì)值的條件概率 
  65.             for character_name in character_vec: 
  66.                 character_value = character_vec[character_name] 
  67.                  
  68.                 data_for_character = data_for_class['character_condition_per'][character_name][character_value] 
  69.  
  70.                 data_for_character['condition_per'] = float(data_for_character['num']) / data_for_class['num'
  71.  
  72.         from pprint import pprint 
  73.         pprint(self.class_set)  #for debug 
  74.  
  75.     def classify(self, input_): 
  76.         ""
  77.             對輸入進行分類,輸入input的格式為 
  78.         { 
  79.             "character_A":"A1"
  80.             "character_B":"B3"
  81.         } 
  82.         ""
  83.         best_class = '' 
  84.         max_per    = 0.0 
  85.         for class_name in self.class_set: 
  86.             class_data = self.class_set[class_name] 
  87.             per = class_data['class_per'
  88.             # 計算各個特征值條件概率的乘積 
  89.             for character_name in input_: 
  90.                 character_per_data = class_data['character_condition_per'][character_name] 
  91.                 per = per * character_per_data[input_[character_name]]['condition_per'
  92.             print(class_name, per) 
  93.             if per >= max_per: 
  94.                 best_class = class_name 
  95.  
  96.         return best_class 
  97.  
  98. character_vec = [("character_A",["A1","A2","A3"]), ("character_B",["B1","B2","B3"])] 
  99. class_vec     = ["class_X""class_Y"
  100. bayes = native_bayes_t(character_vec, class_vec) 
  101.  
  102.  
  103. sample = [ 
  104.             { 
  105.                 'character'  : {'character_A':'A1''character_B':'B1'}, #特征向量 
  106.                 'class_name' : 'class_X'             #類別名稱 
  107.             }, 
  108.             { 
  109.                 'character'  : {'character_A':'A3''character_B':'B1'}, #特征向量 
  110.                 'class_name' : 'class_X'             #類別名稱 
  111.             }, 
  112.             { 
  113.                 'character'  : {'character_A':'A3''character_B':'B3'}, #特征向量 
  114.                 'class_name' : 'class_X'             #類別名稱 
  115.             }, 
  116.             { 
  117.                 'character'  : {'character_A':'A2''character_B':'B2'}, #特征向量 
  118.                 'class_name' : 'class_X'             #類別名稱 
  119.             }, 
  120.             { 
  121.                 'character'  : {'character_A':'A2''character_B':'B2'}, #特征向量 
  122.                 'class_name' : 'class_Y'             #類別名稱 
  123.             }, 
  124.             { 
  125.                 'character'  : {'character_A':'A3''character_B':'B1'}, #特征向量 
  126.                 'class_name' : 'class_Y'             #類別名稱 
  127.             }, 
  128.             { 
  129.                 'character'  : {'character_A':'A1''character_B':'B3'}, #特征向量 
  130.                 'class_name' : 'class_Y'             #類別名稱 
  131.             }, 
  132.             { 
  133.                 'character'  : {'character_A':'A1''character_B':'B3'}, #特征向量 
  134.                 'class_name' : 'class_Y'             #類別名稱 
  135.             }, 
  136.              
  137.         ] 
  138.  
  139. input_data ={ 
  140.     "character_A":"A1"
  141.     "character_B":"B3"
  142.  
  143. bayes.learn(sample) 
  144. print(bayes.classify(input_data)) 

總結(jié):

樸素貝葉斯分類實現(xiàn)簡單,預(yù)測的效率較高

樸素貝葉斯成立的假設(shè)是個特征向量各個屬性條件獨立,建模的時候需要特別注意

原文鏈接:http://www.cnblogs.com/zhiranok/archive/2012/09/22/native_bayes.html

【編輯推薦】

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2017-07-24 10:36:37

Python機器學(xué)習(xí)樸素貝葉斯

2017-03-29 14:50:18

2021-04-18 09:57:45

Java樸素貝葉斯貝葉斯定理

2021-07-29 13:06:29

Python機器學(xué)習(xí)編程語言

2017-07-12 11:27:05

樸素貝葉斯情感分析Python

2021-08-30 11:53:36

機器學(xué)習(xí)人工智能計算機

2022-01-03 20:18:37

定理應(yīng)用貝葉斯

2023-01-31 15:49:51

機器學(xué)習(xí)函數(shù)評分函數(shù)

2013-05-08 09:05:48

狐貍貝葉斯大數(shù)據(jù)

2017-11-07 11:17:40

樸素貝葉斯畫像數(shù)據(jù)數(shù)據(jù)挖掘

2017-08-07 13:02:32

全棧必備貝葉斯

2023-11-28 12:08:56

機器學(xué)習(xí)算法人工智能

2017-06-12 06:31:55

深度學(xué)習(xí)貝葉斯算法

2018-09-13 12:51:58

數(shù)據(jù)挖掘算法樸素貝葉斯

2020-10-19 12:55:59

機器學(xué)習(xí)技術(shù)人工智能

2019-03-20 07:50:47

機器學(xué)習(xí)算法線性回歸

2021-07-23 11:48:16

深度學(xué)習(xí)醫(yī)療人工智能

2024-10-11 16:53:16

貝葉斯人工智能網(wǎng)絡(luò)

2020-05-21 14:50:37

算法深度學(xué)習(xí)人工智能

2016-08-30 00:14:09

大數(shù)據(jù)貝葉斯
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 色欧美片视频在线观看 | 天天操夜夜操 | 麻豆视频国产在线观看 | 欧美日韩精品 | 尤物在线视频 | 黄色免费网址大全 | 奇米超碰| 网色 | 国产美女福利在线观看 | 精品一区二区三区在线视频 | 国产成人精品一区二区三区在线 | 成人免费视频网 | 午夜三级在线观看 | 亚洲欧美日韩电影 | 日韩免费视频一区二区 | 国产欧美在线观看 | 亚洲视频网 | 日韩精品一区二区三区在线观看 | 综合久久色 | 久久欧美精品 | 影音av| 久久黄色 | 国产精品久久久久久久久免费高清 | 91在线精品一区二区 | 日韩精品在线网站 | 一级免费毛片 | 欧美日韩国产中文 | 无码一区二区三区视频 | 久久国产一区 | 久久天天综合 | 日韩一级免费电影 | 久久99蜜桃综合影院免费观看 | 中文字幕一区在线观看视频 | 亚洲视频在线播放 | 久久久精品日本 | 欧美精品黄 | 国产成人精品一区二 | 激情欧美一区二区三区中文字幕 | 免费高清成人 | 精品国产乱码久久久久久闺蜜 | 精品久久久久久亚洲精品 |