Task4

作者: XIN_fc5e | 来源:发表于2019-03-09 21:55 被阅读0次

传统机器学习

一、朴素贝叶斯
朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

高斯朴素贝叶斯(sklearn)
#利用GaussianNB建立简单模型
import numpy as np
from sklearn.naive_bayes import GaussianNB
X = np.array([[-1, -1], [-2, -2], [-3, -3],[-4,-4],[-5,-5], [1, 1], [2, 2], [3, 3]])
y = np.array([1, 1, 1, 1, 1, 2, 2, 2])
clf = GaussianNB()#默认priors=None
clf.fit(X,y)

#priors属性:获取各个类标记对应的先验概率
clf.priors

#class_prior_属性:同priors一样,都是获取各个类标记对应的先验概率,区别在于priors属性返回列表,class_prior_返回的是数组
clf.class_count_

#class_count_属性:获取各类标记对应的训练样本数
clf.class_count_

#theta_属性:获取各个类标记在各个特征上的均值
clf.theta_

#sigma_属性:获取各个类标记在各个特征上的方差
clf.sigma_

#partial_fit(X, y, classes=None, sample_weight=None):增量式训练,当训练数据集数据量非常大,不能一次性全部载入内存时,可以将数据集划分若干份,重复调用partial_fit在线学习模型参数,在第一次调用partial_fit函数时,必须制定classes参数,在随后的调用可以忽略
clf.partial_fit(X,y,classes=[1,2],sample_weight=np.array([0.05,0.05,0.1,0.1,0.1,0.2,0.2,0.2]))
 
#predict(X):直接输出测试集预测的类标记
clf.predict([[-6,-6],[4,5]])

#predict_proba(X):输出测试样本在各个类标记预测概率值
clf.predict_proba([[-6,-6],[4,5]])

#predict_log_proba(X):输出测试样本在各个类标记上预测概率值对应对数值
clf.predict_log_proba([[-6,-6],[4,5]])

#score(X, y, sample_weight=None):返回测试样本映射到指定类标记上的得分(准确率)
clf.score([[-6,-6],[-4,-2],[-3,-4],[4,5]],[1,1,2,2])
多项式朴素贝叶斯(sklearn)
"""
多项式朴素贝叶斯:sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)主要用于离散特征分类,例如文本分类单词统计,以出现的次数作为特征值

参数说明:
alpha:浮点型,可选项,默认1.0,添加拉普拉修/Lidstone平滑参数
fit_prior:布尔型,可选项,默认True,表示是否学习先验概率,参数为False表示所有类标记具有相同的先验概率
class_prior:类似数组,数组大小为(n_classes,),默认None,类先验概率
"""

#利用MultinomialNB建立简单模型
import numpy as np
from sklearn.naive_bayes import MultinomialNB
X = np.array([[1,2,3,4],[1,3,4,4],[2,4,5,5],[2,5,6,5],[3,4,5,6],[3,5,6,6]])
y = np.array([1,1,4,2,3,3])
clf = MultinomialNB(alpha=2.0)
clf.fit(X,y)

'''
class_log_prior_:各类标记的平滑先验概率对数值,其取值会受fit_prior和class_prior参数的影响
1、若指定了class_prior参数,不管fit_prior为True或False,class_log_prior_取值是class_prior转换成log后的结果
2、若fit_prior参数为False,class_prior=None,则各类标记的先验概率相同等于类标记总个数N分之一
3、若fit_prior参数为True,class_prior=None,则各类标记的先验概率相同等于各类标记个数除以各类标记个数之和
'''
clf.class_log_prior_

#intercept_:将多项式朴素贝叶斯解释的class_log_prior_映射为线性模型,其值和class_log_propr相同
clf.intercept_

#feature_log_prob_:指定类的各特征概率(条件概率)对数值,返回形状为(n_classes, n_features)数组
clf.feature_log_prob_    #特征的条件概率=(指定类下指定特征出现的次数+alpha)/(指定类下所有特征出现次数之和+类的可能取值个数*alpha)

#coef_:将多项式朴素贝叶斯解释feature_log_prob_映射成线性模型,其值和feature_log_prob相同
clf.coef_

#feature_count_:各类别各个特征出现的次数,返回形状为(n_classes, n_features)数组
clf.feature_count_

链接:
https://blog.csdn.net/kancy110/article/details/72763276

相关文章

  • 2019-11-07口语_7

    Task4 笔记逻辑 读听说 学术类的文章 reading 定义 term linsening 新信息,框架,标记...

  • task4

    HTML、XML、XHTML 有什么区别? HTML,超文本标记语言,是语法较为松散的、不严格的Web语言;XML...

  • task4

    1.引用类型有哪些?非引用类型有哪些 基本类型值(数值、布尔值、字符串、null和undefined):指的是保存...

  • Task4

    1.函数的关键字 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括...

  • task4

    1.函数关键字使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数...

  • task4

    机器翻译及相关技术 特征 主要特征:输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。 enc...

  • task4

    1111

  • Task4

    传统机器学习 一、朴素贝叶斯朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对...

  • NLP入门 - 新闻文本分类 Task4

    Task4 基于深度学习的文本分类1 - fastText 学习目标 学习FastText的使用和基础原理 学会使...

  • 入门-task4

    HTML、XML、XHTML 有什么区别 怎样理解 HTML 语义化 怎样理解内容与样式分离的原则 有哪些常见的m...

网友评论

      本文标题:Task4

      本文链接:https://www.haomeiwen.com/subject/zodspqtx.html