当前位置: 首页 > news >正文

网站建设丿金手指下拉9上海高端网站建设服务公司

网站建设丿金手指下拉9,上海高端网站建设服务公司,论坛网站如何备案,网站用户登录流程图文章目录一、概率类模型的评估指标1、布里尔分数Brier Score对数似然函数Log Loss二、calibration_curve#xff1a;校准可靠性曲线三、多项式朴素贝叶斯以及其变化四、伯努利朴素贝叶斯五、改进多项式朴素贝叶斯#xff1a;补集朴素贝叶斯ComplementNB六、文本分类案例TF-ID… 文章目录一、概率类模型的评估指标1、布里尔分数Brier Score对数似然函数Log Loss二、calibration_curve校准可靠性曲线三、多项式朴素贝叶斯以及其变化四、伯努利朴素贝叶斯五、改进多项式朴素贝叶斯补集朴素贝叶斯ComplementNB六、文本分类案例TF-IDF总结一、概率类模型的评估指标 1、布里尔分数Brier Score 概率预测的准确程度被称为“校准程度”是衡量算法预测出的概率和真实结果的差异的一种方式。一种比较常用的指标叫做布里尔分数它被计算为是概率预测相对于测试样本的均方误差表示为 其中N是样本数量 为朴素贝叶斯预测出的概率 是样本所对应的真实结果只能取到0或者1如果事件发生则为1如果不发生则为0。这个指标衡量了我们的概率距离真实标签结果的差异其实看起来非常像是均方误差。布里尔分数的范围是从0到1分数越高则预测结果越差劲校准程度越差因此布里尔分数越接近0越好。由于它的本质也是在衡量一种损失所以在sklearn当中布里尔得分被命名为brier_score_loss。 对数似然函数Log Loss 另一种常用的概率损失衡量是对数损失log_loss又叫做对数似然逻辑损失或者交叉熵损失它是多元逻辑回归以及一些拓展算法比如神经网络中使用的损失函数。它被定义为对于一个给定的概率分类器在预测概率为条件的情况下真实概率发生的可能性的负对数如何得到这个损失函数的证明过程和推导过程在逻辑回归的章节中有完整得呈现。由于是损失因此对数似然函数的取值越小则证明概率估计越准确模型越理想。值得注意得是对数损失只能用于评估分类型模型。对于一个样本如果样本的真实标签yture 在{0,1}中取值并且这个样本在类别1下的概率估计为ypred 则这个样本所对应的对数损失是 二、 calibration_curve 可以看到高斯贝叶斯的概率分布是两边非常高中间非常低几乎90%以上的样本都在0和1的附近可以说是置信度最高的算法但是贝叶斯的布里尔分数却不如逻辑回归这证明贝叶斯中在0和1附近的样本中有一部分是被分错的。支持向量贝叶斯完全相反明显是中间高两边低类似于正态分布的状况证明了我们刚才所说的大部分样本都在决策边界附近置信度都徘徊在0.5左右的情况。而逻辑回归位于高斯朴素贝叶斯和支持向量机的中间即没有太多的样本过度靠近0和1也没有形成像支持向量机那样的正态分布。一个比较健康的正样本的概率分布就是逻辑回归的直方图显示出来的样子。 避免混淆概率密度曲线和概率分布直方图 大家也许还记得我们说过我们是假设样本的概率分布为高斯分布然后使用高斯的方程来估计连续型变量的概率。怎么现在我们绘制出的概率分布结果中高斯普斯贝叶斯的概率分布反而完全不是高斯分布了呢注意千万不要把概率密度曲线和概率分布直方图混淆。 在称重汉堡的时候所绘制的曲线是概率密度曲线横坐标是样本的取值纵坐标是落在这个样本取值区间中的样本个数衡量的是每个X的取值区间之内有多少样本。服从高斯分布的是X的取值上的样本分布。 现在我们的概率分布直方图横坐标是概率的取值[0,1]纵坐标是落在这个概率取值范围中的样本的个数衡量的是每个概率取值区间之内有多少样本。这个分布是没有任何假设的。 校准可靠性曲线 在这里我主要来为大家展示如果使用sklearn中的概率校正类CalibratedClassifierCV来对二分类情况下的数据集进行概率校正。 class sklearn.calibration.CalibratedClassifierCV (base_estimatorNone, method’sigmoid’, cv’warn’)这是一个带交叉验证的概率校准类它使用交叉验证生成器对交叉验证中的每一份数据它都在训练样本上进行模型参数估计在测试样本上进行概率校准然后为我们返回最佳的一组参数估计和校准结果。每一份数据的预测概率会被求解平均。注意类CalibratedClassifierCV没有接口decision_function要查看这个类下校准过后的模型生成的概率必须调用predict_proba接口。 base_estimator 需要校准其输出决策功能的分类器必须存在predict_proba或decision_function接口。 如果参数cv prefit分类器必须已经拟合数据完毕。 cv 整数确定交叉验证的策略。可能输入是 None表示使用默认的3折交叉验证 任意整数指定折数 对于输入整数和None的情况下来说如果时二分类则自动使用类sklearn.model_selection.StratifiedKFold进 行折数分割。如果y是连续型变量则使用sklearn.model_selection.KFold进行分割。 已经使用其他类建好的交叉验证模式或生成器cv 可迭代的已经分割完毕的测试集和训练集索引数组 输入prefit则假设已经在分类器上拟合完毕数据。在这种模式下使用者必须手动确定用来拟合分类器的数 据与即将倍校准的数据没有交集 在版本0.20中更改在0.22版本中输入“None”将由使用3折交叉验证改为5折交叉验证 method 进行概率校准的方法可输入sigmoid或者isotonic 输入’sigmoid’使用基于Platt的Sigmoid模型来进行校准 输入’isotonic’使用等渗回归来进行校准 当校准的样本量太少比如小于等于1000个测试样本的时候不建议使用等渗回归因为它倾向于过拟合。样本量过少时请使用sigmoids即Platt校准。 我们依然来使用之前建立的数据集。 def plot_calib(models,name,Xtrain,Xtest,Ytrain,Ytest,n_bins10):import matplotlib.pyplot as pltfrom sklearn.metrics import brier_score_lossfrom sklearn.calibration import calibration_curvefig, (ax1, ax2) plt.subplots(1, 2,figsize(20,6))ax1.plot([0, 1], [0, 1], k:, labelPerfectly calibrated)for clf, name_ in zip(models,name):clf.fit(Xtrain,Ytrain)y_pred clf.predict(Xtest)#hasattr(obj,name)查看一个类obj中是否存在名字为name的接口存在则返回Trueif hasattr(clf, predict_proba):prob_pos clf.predict_proba(Xtest)[:,1]else:# use decision functionprob_pos clf.decision_function(Xtest)prob_pos (prob_pos - prob_pos.min()) / (prob_pos.max() - prob_pos.min())#返回布里尔分数clf_score brier_score_loss(Ytest, prob_pos, pos_labely.max())trueproba, predproba calibration_curve(Ytest, prob_pos,n_binsn_bins)ax1.plot(predproba, trueproba,s-,label%s (%1.3f) % (name_, clf_score))ax2.hist(prob_pos, range(0, 1), binsn_bins, labelname_,histtypestep,lw2)ax2.set_ylabel(Distribution of probability)ax2.set_xlabel(Mean predicted probability)ax2.set_xlim([-0.05, 1.05])ax2.legend(loc9)ax2.set_title(Distribution of probablity)ax1.set_ylabel(True probability for class 1)ax1.set_xlabel(Mean predcited probability)ax1.set_ylim([-0.05, 1.05])ax1.legend()ax1.set_title(Calibration plots(reliability curve))plt.show()from sklearn.calibration import CalibratedClassifierCV name [GaussianBayes,Logistic,Bayesisotonic,Bayessigmoid] gnb GaussianNB() models [gnb,LR(C1., solverlbfgs,max_iter3000)#定义两种校准方式,CalibratedClassifierCV(gnb, cv2, methodisotonic),CalibratedClassifierCV(gnb, cv2, methodsigmoid)] plot_calib(models,name,Xtrain,Xtest,Ytrain,Ytest)可以看到对于SVC来说两种校正都改善了准确率和布里尔分数。可见概率校正对于SVC非常有效。这也说明概率校正对于原本的可靠性曲线是形容Sigmoid形状的曲线的算法比较有效。 在现实中我们可以选择调节模型的方向我们不一定要追求最高的准确率或者追求概率拟合最好我们可以根据自己的需求来调整模型。当然对于概率类模型来说由于可以调节的参数甚少所以我们更倾向于追求概率拟合并使用概率校准的方式来调节模型。如果你的确希望追求更高的准确率和Recall可以考虑使用天生就非常准确的概率类模型逻辑回归也可以考虑使用除了概率校准之外还有很多其他参数可调的支持向量机分类器。 三、多项式朴素贝叶斯以及其变化 四、伯努利朴素贝叶斯 从结果上来看多项式朴素贝叶斯判断出了所有的多数类样本但放弃了全部的少数类样本受到样本不均衡问题影响最严重。高斯比多项式在少数类的判断上更加成功一些至少得到了43.8%的recall。伯努利贝叶斯虽然整体的准确度和布里尔分数不如多项式和高斯朴素贝叶斯和但至少成功捕捉出了77.1%的少数类。可见伯努利贝叶斯最能够忍受样本不均衡问题。 可是伯努利贝叶斯只能用于处理二项分布数据在现实中强行将所有的数据都二值化不会永远得到好结果在我们有多个特征的时候我们更需要一个个去判断究竟二值化的阈值该取多少才能够让算法的效果优秀。这样做无疑是非常低效的。那如果我们的目标是捕捉少数类我们应该怎么办呢高斯朴素贝叶斯的效果虽然比多项式好但是也没有好到可以用来帮助我们捕捉少数类的程度——43.8%还不如抛硬币的结果。因此孜孜不倦的统计学家们改进了朴素贝叶斯算法修正了包括无法处理样本不平衡在内的传统朴素贝叶斯的众多缺点得到了新兴贝叶斯算法补集朴素贝叶斯 五、改进多项式朴素贝叶斯补集朴素贝叶斯ComplementNB 六、文本分类案例 TF-IDF TF-IDF全称term frequency-inverse document frequency词频逆文档频率是通过单词在文档中出现的频率来衡量其权重也就是说IDF的大小与一个词的常见程度成反比这个词越常见编码后为它设置的权重会倾向于越小以此来压制频繁出现的一些无意义的词。在sklearn当中我们使用feature_extraction.text中类TfidfVectorizer来执行这种编码。 sklearn.datasets.fetch_20newsgroups (data_homeNone, subset’train’, categoriesNone, shuffleTrue, random_state42, remove(), download_if_missingTrue) 总结 可以观察到多项式分布下无论如何调整算法的效果都不如补集朴素贝叶斯来得好。因此我们在分类的时候应该选择补集朴素贝叶斯。对于补集朴素贝叶斯来说使用Sigmoid进行概率校准的模型综合最优秀准确率最高对数损失和布里尔分数都在0.1以下可以说是非常理想的模型了。 对于机器学习而言朴素贝叶斯也许不是最常用的分类算法但作为概率预测算法中唯一一个真正依赖概率来进行计算并且简单快捷的算法朴素贝叶斯还是常常被人们提起。并且朴素贝叶斯在文本分类上的效果的确非常优秀。由此可见只要我们能够提供足够的数据合理利用高维数据进行训练朴素贝叶斯就可以为我们提供意想不到的效果。
http://www.tj-hxxt.cn/news/138278.html

相关文章:

  • 知名的传媒行业网站开发域名转接的流程
  • 大连网站建设大全杭州pc网站制作公司
  • 贵阳做网站方舟网络网站有哪些
  • 罗琳做的网站目前徐州有多少网架公司
  • 许昌建设企业网站北京十大企业公司排名
  • 手机网站 返回顶部中国建筑网官网是哪个
  • html5国外酷炫网站企业信用信息公示平台
  • 如何做返利网站外推广网站备案工作
  • 网站建设 英语翻译做狗狗网站的背景图
  • 教育在线网站怎样做直播wordpress所有文章新窗口打开
  • 网站建设实训报告模板wordpress发布商品
  • 2015年做哪些网站致富单页营销分享网站
  • pc网站建设方案有哪些深圳专业专业网站建设公司
  • 网络营销是一种无媒介销售阳江网站seo公司
  • 慈溪网站建设报价网络营销公司哪家不错
  • 服饰网站建设wordpress文章部分展示
  • 萧山区网站建设贵州润铁祥建设工程有限公司网站
  • 如何网站做外贸生意网校培训
  • 网站新闻发布系统模板网站展示型推广有哪些
  • 网站 繁体 js咨询类公司注册需要什么
  • 北京企业网站设计报价男的和女的做那种短视频网站
  • 可以做兼职的网站有哪些工作室销售怎样找精准客户
  • 企业推广建站瑞安 网站建设
  • 企业网站开发公司有哪些微信小程序开发大赛
  • 网站建设店铺介绍怎么写wordpress js加载速度
  • 安国市住房和城乡建设局网站照明灯企业网站织梦模板
  • 大岭山网站建设公司html网页设计介绍
  • dede 网站地图 模块科技 响应式网站模板下载
  • 百度竞价网站谁做网站建设专业性的评估
  • 前端可以自己做网站么温州seo优化