贝叶斯

一些机器学习算法

 ̄綄美尐妖づ 提交于 2019-11-30 22:43:58
假设对于某个数据集,随机变量C表示样本为C类的概率,F1表示测试样本某特征出现的概率,套用基本贝叶斯公式,则如下所示: 上式表示对于某个样本,特征F1出现时,该样本被分为C类的条件概率。那么如何用上式来对测试样本分类呢? 举例来说,有个测试样本,其特征F1出现了(F1=1),那么就计算P(C=0|F1=1)和P(C=1|F1=1)的概率值。前者大,则该样本被认为是0类;后者大,则分为1类。 对该公示,有几个概念需要熟知: 先验概率(Prior) :P(C)是C的先验概率,可以从已有的训练集中计算分为C类的样本占所有样本的比重得出。 证据(Evidence) :即上式P(F1),表示对于某测试样本,特征F1出现的概率。同样可以从训练集中F1特征对应样本所占总样本的比例得出。 似然(likelihood) :即上式P(F1|C),表示如果知道一个样本分为C类,那么他的特征为F1的概率是多少。 对于多个特征而言,贝叶斯公式可以扩展如下: 分子中存在一大串似然值。当特征很多的时候,这些似然值的计算是极其痛苦的。现在该怎么办? 为了简化计算,朴素贝叶斯算法做了一假设:“朴素的认为各个特征相互独立”。这么一来,上式的分子就简化成了: P(C) P(F1|C) P(F2|C)…P(Fn|C)。 这样简化过后,计算起来就方便多了。 这个假设是认为各个特征之间是独立的,看上去确实是个很不科学的假设

EdX Columbia ML 7. K-最近邻分类与贝叶斯分类器

此生再无相见时 提交于 2019-11-30 21:08:35
分类问题: 其输入是输入空间 (mathcal{X} = mathbb{R}^d) 中的 (n) 个样本 (x_1, ldots, x_n) ,输出是 离散空间 (mathcal{Y}) 中的某个值。当 (mathcal{Y} = {-1,+1}) 或 ({0,1}) 时,问题是一个二元分类问题;当 (mathcal{Y} = {1, ldots, K}) 时,问题是一个多元分类问题 分类问题使用函数 (f) (即分类器)将输入 (x) 映射到类别 (y) 上,即 (y = f(x)) 近邻分类 其算法思想是,给定数据 ((x_1, y_1), ldots, (x_n, y_n)) ,构造分类器 (hat{f}(x) rightarrow y) 如下: 对于不在训练数据里的 (x​) ,令 (x_i​) 是 ((x_1, y_1), ldots, (x_n, y_n)​) 中离 (x​) “最近”的点 返回其标签 (y_i) 如何衡量 (x) 之间的距离?常见的是使用欧几里得距离,即 [ |!|u-v|!|_2 = left(sum_{i=1}^d (u_i - v_i)^2right)^{frac{1}{2}} ] 当然也可以使用其它衡量方法,例如 (ell_p) 、编辑距离(适用于字符串)或者相关距离(衡量两个向量的相关性) k近邻分类 与原始的近邻分类类似,不过是选取“最近

EdX Columbia ML 7. K-最近邻分类与贝叶斯分类器

徘徊边缘 提交于 2019-11-30 20:54:16
分类问题: 其输入是输入空间 (mathcal{X} = mathbb{R}^d) 中的 (n) 个样本 (x_1, ldots, x_n) ,输出是 离散空间 (mathcal{Y}) 中的某个值。当 (mathcal{Y} = {-1,+1}) 或 ({0,1}) 时,问题是一个二元分类问题;当 (mathcal{Y} = {1, ldots, K}) 时,问题是一个多元分类问题 分类问题使用函数 (f) (即分类器)将输入 (x) 映射到类别 (y) 上,即 (y = f(x)) 近邻分类 其算法思想是,给定数据 ((x_1, y_1), ldots, (x_n, y_n)) ,构造分类器 (hat{f}(x) rightarrow y) 如下: 对于不在训练数据里的 (x​) ,令 (x_i​) 是 ((x_1, y_1), ldots, (x_n, y_n)​) 中离 (x​) “最近”的点 返回其标签 (y_i) 如何衡量 (x) 之间的距离?常见的是使用欧几里得距离,即 [ |!|u-v|!|_2 = left(sum_{i=1}^d (u_i - v_i)^2right)^{frac{1}{2}} ] 当然也可以使用其它衡量方法,例如 (ell_p) 、编辑距离(适用于字符串)或者相关距离(衡量两个向量的相关性) k近邻分类 与原始的近邻分类类似,不过是选取“最近

数据分析之贝叶斯算法案例

时光怂恿深爱的人放手 提交于 2019-11-30 18:14:19
1.贝叶斯定理 是一个经典的条件概率定理,其在机器学习中主要用来通过结果推算出原因产生的概率。P(A/B)*P(B)=P(B/A)*P(A) 2.字符串分类案例 #案例:随机输入一个字符串,判定其最可能属于哪个类别? #若计算P(cat/str)=P(cat)*P(str/cat)/P(str) #由于P(str)概率相同,因此公式可以简化为:P(cat/str)=P(cat)*P(str/cat) cat1=["a","b","c","d","e","j"] cat2=["a","d","o","h","e"] cat3=["a","b","l","e","h","f"] a="abcd" def predict(str1): cat=[cat1,cat2,cat3] p={0:0,1:0,2:0} p1=[len(cat1)/26,len(cat2)/26,len(cat3)/26]#26个字母中出现的概率 for i in str1: for j in range(len(cat)): if i in cat[j]: p[j]+=1/len(cat[j])*p1[j] #在cat1中字符串产生的概率, return sorted(p.items(),key= lambda p:p[1],reverse=True ) if __name__ == '__main__':

贝叶斯网络之----(d-分离步骤)

无人久伴 提交于 2019-11-30 16:42:21
贝叶斯网络假设是指 给定一个变量的父母节点,这个变量条件独立于他的非后代。 d-separation步骤用途 回答两类问题, 给定变量下条件独立性问题。例如,在给定D和F的情况下,A和B是否独立,$ P(A|BDF) = P(A|DF)$ 。 边际独立性问题。例如,A和B是否独立,$ P(A|B) = P(A)$ 。 d-separation步骤流程 概率表达式中所提到节点及其 祖先 (不带子女,除非提到)组成的图。 父母配用无线边配对。 将所有边变成无向边。 删除所有给定变量的节点,以及他们的边。例如,在给定D和F的情况下,A和B是否独立,$ P(A|BDF) = P(A|DF)$ 。那么要删去的节点就是D和F。 解释得到的图。经过前面4步得到一个图,如果a)变量是不连接的,则独立或条件独立性满足,如果b)变量在图中是连接的。则不能保证独立或条件独立性。这里连接指的是节点之间存在一条路径。c)如果一个或多个变量在图中不存在,则独立或条件独立性满足。 熟练之后,可知两个没有公共祖先的节点是边际独立的,但给定他们的子节点,他们就变成相关的(common effect)例如下图情形, 下两个图是相关路径(active trails)几种情形,以及基于相关路径的两节点d-separation定义(应该和我们用上述流程得到的连接或不连接是一致的,这个是在另一个文献里找的), d

朴素贝叶斯模型1

℡╲_俬逩灬. 提交于 2019-11-30 06:35:10
是什么 考虑如下文本分类问题:训练集为n条文本特征 1 ,文本类别对, \(\{(\mathbf{t}^i,c^i)\}_{i=1}^n\) 2 现给定文本特征 \(\mathbf{t}\) ,要求判定它的类别。 朴素贝叶斯做法就是算使得 \(p(\mathbf{t},c)\) 最大的 \(c^*\) 作为 \(\mathbf{t}\) 的类别: \[ c^*=\arg \max p(\mathbf{t},c) \] 其中, \[ p(\mathbf{t},c)=p(c)\prod_{j=1}^{m} p(t_j|c) \] 而右边的 \(p(c)\) , \(p(t_j|c)\) 则是由训练数据估计值代替,则估计值为: \[ p(c)=\frac{\#\{c^i=c\}}{n} \] \[ p(t_j|c^i=c)=\frac{\#\{c^i=c\quad\text{and}\quad t^i_j=t_j\} }{\#\{c^i=c \}} \] 考虑如下文本分类问题:训练集为n条文本特征 3 ,文本类别对, \(\{(\mathbf{t}^i,c^i)\}_{i=1}^n\) 4 现给定文本特征 \(\mathbf{t}\) ,要求判定它的类别。 朴素贝叶斯做法就是算使得 \(p(\mathbf{t},c)\) 最大的 \(c^*\) 作为 \(\mathbf{t}\) 的类别

基于朴素贝叶斯的书籍评价信息分类任务

為{幸葍}努か 提交于 2019-11-30 04:22:40
import pandas as pd import jieba from sklearn.feature_extraction.text import CountVectorizer import numpy as np from sklearn.naive_bayes import MultinomialNB # 加载数据 data = pd.read_csv("./data.csv",encoding='ansi') print("data:\n",data) print("data 的列名:\n",data.columns) # 将特征值 与目标值转化为数值类型 data.loc[data.loc[:,"评价"] == '好评','评价'] = 0 data.loc[data.loc[:,"评价"] == '差评','评价'] = 1 # 将object 转化为int类型 data.loc[:,"评价"] = data.loc[:,"评价"].astype('int') # print(data) # print(data.dtypes) # 转化特征值为数值型 content_list = [] for tmp in data.loc[:,'内容 ']: res = jieba.cut(tmp,cut_all=False) # 组装分词 res_str = ","

贝叶斯

杀马特。学长 韩版系。学妹 提交于 2019-11-30 03:33:59
1.朴素贝叶斯:假设特征变量之间相互独立。 来源: https://blog.csdn.net/Lucky_girlhehui/article/details/101036174

吴恩达机器学习入门笔记10/11-贝叶斯分类器/集成学习(西瓜书补充)

泄露秘密 提交于 2019-11-30 02:52:28
10 贝叶斯分类器 10.1 朴素贝叶斯分类器 假设所有属性相互独立 \[ h_{n b}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \max } P(c) \prod_{i=1}^{d} P\left(x_{i} | c\right)\tag{10.1} \] \(P(c)=\frac{|D_c|}{|D|}\) , \(P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|}\) 10.1.1 拉普拉斯修正 若某个属性值在训练集中没有与某个类同时出现过,为防止连乘式计算出的概率值为零,令 \(P(c)=\frac{|D_c|+1}{|D|+N}\) , \(P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i}\) N 表示训练集D种可能的类别数, \(N_i\) 表示第i个属性可能的取值数 10.2 半朴素贝叶斯分类器 属性条件独立性假设很难成立,因此放松该条件,假设每个属性在类别之外最多依赖于一个其他属性 10.3 贝叶斯网 可任意表示属性间的依赖性 11 集成学习 通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能 要获得好的集成,个体学习器应好而不同,即学习器不能太坏并且学习器之间存在差异 即个体学习器准确性越高、多样性越大,则集成越好