精华内容
下载资源
问答
  • 计划软件往往按照特定的指标判断预测模型的优劣,但很难综合考虑多种因素,特别是历史数据没有反映的信息。这就是对计划软件建议的模型,有经验的计划人员总是戒心重重的原因了。在选择合适的预测模型时,我们首先要...

    bc3d7ab6dcbc4eabe2923204059f20d9.png

    本文摘自以上书籍,作者:刘宝红,京东、当当有售。

    预测模型的选择是个复杂过程,需要考虑多方面的因素,再配以职业判断。计划软件往往按照特定的指标判断预测模型的优劣,但很难综合考虑多种因素,特别是历史数据没有反映的信息。这就是对计划软件建议的模型,有经验的计划人员总是戒心重重的原因了。

    在选择合适的预测模型时,我们首先要看预测准确度。前面说过,常用的准确度指标有两个:绝对误差百分比、均方差。前者的好处是直观,但有可能误导;后者的好处是更能够避免极端误差,但不直观。

    我还看到,有人用预测“成功率”来评判模型的好坏。比如准确度目标是70%或更高,选100个样本,用预测方法A,有60个样本达到70%以上的准确度;用方法B,只有55个,所以就得出A优于B的结论。这看上去有道理,但如果A没有预测“准”的产品中,误差极端大的案例很多;而B没有预测“准”的产品中,误差都相对挺小,怎么办?

    我们当然希望更多的产品能够预测更准;但害死我们的是那些预测极端不准的,这在上面评判方法中没有覆盖到。打个不恰当的比喻,这有点像木桶理论,每个桶板当然是越长越好,但真正害死我们的是那些最短的板。

    所以,围绕多个产品选择一种更优的预测方法时,我们也要观察那些预测误差极大的产品,通常有3种方法来应对。

    方法1是把所有产品的预测误差加起来,看哪种预测方法的整体准确度最低。

    方法2是采取两种互补的预测方法,比如方法A的优势是预测需求变动大的产品,方法B的优势是预测变动较小的产品,每个产品根据自身的特点,在A和B中选择一种方法,以尽量避免出现大错特错。我们后面要讲的预测方法择优,就是基于这样的思路。

    方法3是用多种方法预测,求其平均值作为最终的预测。我看到学者们在说,这样做可以提高预测的准确度。这有点集思广益的意思,跟“三个臭皮匠,能顶一个诸葛亮”一样。针对具体的案例,我们可以通过复盘的方式,来验证究其效果。

    对预测来说,我们与其说是在追求“更准”,不如说是在避免“更不准”:我们要尽量避免极端错误。这就如长寿和早死的关系:我们虽说都在追求长寿,其实更多是在力求避免早死。长寿充满偶然性,但早死却有相当的必然性[1];你很难对偶然做点什么,你是通过控制必然来应对偶然,那就是避免早死,才会长寿。

    或许这也能够解释,至少是部分解释,为什么人们不愿接受人工智能(AI)和计划软件的建议:凡是我见过的AI和计划软件,整体的预测准确度都要比计划人员更高;但是,由于这些信息系统不知道它们不知道的东西,比如促销、活动等需求历史没法完整体现的信息,往往会出现大错特错,计划人员一眼就可以看出。在精益求精的优化上,计划人员虽然斗不过软件;但在避免大错特错上,他们却往往做得更到位,或者至少觉得他们做得更好。出于避免“更不准”的心理,人们却不敢用,或者不愿用AI和软件系统做预测,也就不难理解了。

    预测方法的择优,要尽量考虑对供应链执行的影响,在预测准确度差不多的前提下,预测要尽可能平滑,以减小供应链的执行难度,降低供应链的运营成本。

    最后,预测模型的选择还要考虑实施的难易度。人们难以理解的模型,就不信任;不信任,就很难推广。就整体预测效果而言,简单的模型往往比复杂的更理想,很大程度上是因为简单的模型更容易落地。这就相当于给你个100%功能的武器,你能实现30%;还是70%功能的武器,你能实现50%一样。

    真正的计划高手,高就高在用最基本的模型,比如移动平均和指数平滑法,解决实践中的大多数问题。这就如真正的武林高手不会花拳绣腿,拖泥带水,而是用最简单、最直观的招数克敌制胜一样。所以,如果有些人一张口,就搬出一些你没听过的复杂方法,他八成是在以主题博大,以掩盖在基本方法论上的贫瘠。

    【小贴士】寻找更优,而不是最优的解决方案

    有个千亿级的大公司,开设了专门的事业部,雇了一帮博士、硕士开发计划模型,也给别的企业提供咨询。但他们自己的计划人员呢,我问他们是怎么设安全库存的。计划员们说,对于A类物料,他们放x天的安全库存;对于B类物料,他们放y天的安全库存……你知道,他们还是在拍脑袋,虽然公司很大,名气也很大,做计划的方式跟粗放经营的企业无异。

    这后面反映的呢,就是典型的系统和组织两层皮:一边是一帮博士、硕士、数理统计专家们皓首穷经,奔着最优化的目标去,开发了很完善,当然也很复杂的软件系统(“完善”在很多时候是复杂的代名词);另一边是一帮计划人员呢,还是我行我素,继续操着土枪土炮讨生活。一方面,这跟博士们懂数理统计,但不懂业务有关,导致软件系统本身不一定实用;另一个方面,信息系统严重超前,超越组织的现有能力两个阶段,也会导致两层皮的问题。

    啥叫超越两个阶段?打个比方。一群原始人在赤手空拳与野兽搏杀,你给只棒子,这是超越组织能力一个阶段,他们试试后觉得不错,用的可能性很大;但如果给辆坦克,这是超越现有能力两个阶段,他们根本没有能力操控,当然也就不会用了。

    寻找渐进式的改良方案,可有效避免上述问题

    比如某企业对于所有的产品,原来都在用8周移动平均来预测。我们经过复盘分析,发现部分产品用6周移动更准确,其余的用8周移动更准确;或者说整体而言,指数平滑法比移动平均法更准确,那我们就适当地差异化处理,这就是渐进的改良。

    再比如说,每个产品在不同的库存点,最优预测方法都可能不同。但为了简单,我们把一个库存点的所有产品作为一个整体,寻找一种或两种方法,让整体胜算更高。我理解,相比每个产品都采用最优预测方法,这样做会丧失一些准确度,但希望换取可操作性,降低预测模型的维护成本,也适当提高模型的容错性。

    商业问题的本质是寻求更好,而不是最好的方案。就如NBA里“独行侠”的老板库班所言,商业上追求完美是件糟糕的事,因为有个投入产出比的问题[2]。等组织的能力提升到一定地步后,我们可以逐步导入更完美,也更优化的做法。

    【实践者问】我是做供应链系统的,公司让我主导供应链计划改进项目。我怎么做预测部分的需求呢?毕竟信息化的从业人员很少有供应链体系的从业经历,我的问题比较尴尬。

    【刘宝红答】这是对你们IT人员的不公平。需求定义首先是计划人员的责任,他们得搞清楚需求预测怎么做,库存计划如何设,哪些地方需要改进,定义好需求后,你们IT团队可以帮助自动化。有趣的是,另一个公司的IT也有同样的问题:他们在公司CFO的驱动下,给供应链设计了一整套的预测、计划模型,整体思路很好,但根本没法落地。反过来想想看,如果让一个计划经理设计一套IT解决方案,其可行性会有多高?

    这也反映了有些公司对计划的误解,认为计划就是分析数据,而IT似乎是数据的对口部门。跟任何职能一样,计划的能力要从组织、流程、信息系统三个方面来改进,IT可以改进信息系统,但信息系统要围绕组织的目标和做事的流程来开发,那些都需要计划职能来定义。

    更多阅读

    刘宝红8月供应链管理远程培训课程大纲-正在报名

    展开全文
  • 裂解温度是影响煤粉裂解特性的主要因素之一,采用CPD模型对裂解产品的分布进行预测,计算结果表明,CPD模型对煤粉裂解产物分布的预测具有一定的准确性,可以根据煤质特性参数初步判断煤粉一次裂解产品的产率。...
  • True Positive (真正, TP)被模型预测为正正样本;可以称作判断为真正确率,预测对了。 True Negative(真负 , TN)被模型预测为负负样本 ;可以称作判断为假正确率,预测对了 False Positive (假正, ...
    • 精确率precision(查准率)
    • 召回率recall(查全率)
    • 准确率accuracy
    • True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率,预测对了。
    • True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率,预测对了
    • False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率,预测错了
    • False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率,预测错了

    True 或者False 表示判断的对错,阳性,阴性表示模型预测的结果是正样本还是负样本

     

    1,召回率或查全率(recall)的衡量指标

          最大化模型找到数据集中所有相关案例的能力

          召回率=真正例/(真正例+假反例), 以检测拍照为例,正确检测的拍照占出现的拍照行为的百分比。

          真正例:实际上是拍照,预测正确。假反例:实际上是拍照,预测错误

    2,精度 

      精度=真正例/(真正例+假正例):正确检测的拍照占所有检测到的拍照行为的百分比

    3,精度—召回率权衡

    precision就是你以为的正样本,到底猜对了多少.
    recall就是真正的正样本,到底找出了多少.

    结合精度和召回率,在某些情况中,我们也许需要以牺牲另一个指标为代价来最大化精度或者召回率。
    例如,在对患者进行随访检查的初步疾病筛查中,我们可能希望得到接近于 1 的召回率—我们想找到所有实际患病的患者。
    如果随访检查的代价不是很高,我们可以接受较低的精度。然而,如果我们想要找到精度和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合。

    4,AP值

    AP的意义:AP综合考量了recall和precision的影响,反映了模型对某个类别识别的好坏.

    AP的定义即为recall-precision下的面积.

    一个分类器如果比较好的让Recall值增长的同时保持Precision的值在一个很高的水平。即召回率-精度曲线下的面积越大越好

    参考:

    https://www.cnblogs.com/xuexuefirst/p/8858274.html

    展开全文
  • 我们提出了一种基于贝叶斯网络(BN)列车延误预测模型,以解决列车运行复杂性和依赖性。 利用来自高速铁路线实际列车运行数据,研究了三种不同BN方案,即启发式爬山,原始线性和混合结构。 我们首先使用历史...
  • 一、模型评价指标简介模型评价指标是为了衡量模型的泛化能力而建立的指标。对于分类和回归两类监督学习,分别有各自的评判标准。二、分类模型评价指标混淆矩阵:实际表现实际表现10预测值1TPFP预测值0FNTF说明:T/F:...

    一、模型评价指标简介

    模型评价指标是为了衡量模型的泛化能力而建立的指标。对于分类和回归两类监督学习,分别有各自的评判标准。

    二、分类模型评价指标

    混淆矩阵:

    实际表现

    实际表现

    1

    0

    预测值

    1

    TP

    FP

    预测值

    0

    FN

    TF

    说明:

    T/F:表示是否判断正确

    P/N:表示预测值为1或0

    举例:样本为10个人的信息,8个为感冒,2个为不感冒,医生在8个感冒的人中判断出5个,在2个不感冒的人中判断出1个。

    1、准确率

    公式

    $$

    准确率=(TP+TN)/(TP+TN+FP+FN)

    $$

    含义

    针对全体样本,代表整体的预测准确度,既包含正样本也包含负样本。

    缺点

    在样本不平衡的情况下,不能作为很好的指标来衡量结果。

    此样本不平衡,假如设计一个模型将所有的用户判断为正样本,则准确率为80%,准确率虽然很高但实际并不是一个好的模型。

    举例

    准确率=6/10

    2、精准率(查准率)

    公式

    $$

    精准率=TP/(TP+FP)

    $$

    含义

    针对预测样本,代表对正样本的预测准确率,即所有被预测为正的样本中实际为正的样本的概率。

    举例

    精准率=5/(5+1)=5/6

    3、召回率(查全率)

    公式

    $$

    召回率=TP/(TP+FN)

    $$

    含义

    针对原样本,在实际为正的样本中被预测为正样本的概率。

    举例

    召回率=5/8

    适用场景及特点

    在更关心覆盖率的情况下如反欺诈,即宁愿将负样本虚报为正样本,也不愿意放过一个正样本。召回率越高,代表正样本被预测出来的概率更大。

    4、ROC/AUC

    相关指标(1)真正率(灵敏度、召回率)——覆盖率

    $$

    真正率=TP/(TP+FN)

    $$

    含义:在正样本中预测为正的概率。

    (2)假正率(1-特异度) ——虚报率

    $$

    假正率=FT/(FP+TN)

    $$

    含义:在负样本中虚报为正的概率。

    含义

    ROC:覆盖率与虚报率结对组成的结合曲线。

    AUC:覆盖率与虚报率结对组成的结合曲线的线下面积。

    优点

    可以无视样本的不平衡,因为真正率和假正率分别是基于实际样本的1和0出发的,分别在实际的正样本和负样本中观察相关概率问题。

    举例说明:真正率只关心8个病人中有多少可以被预测出感冒,而假正率只关心2个人中有多少被误判为感冒。

    比较

    AUC比ROC计算更高效。

    三、参考

    展开全文
  • 这种概率给出预测的可信,所以对于概率类模型我们希望能够由其他的模型评估指标来帮助我们判断模型在“概率预测”这项工作上,完成得如何。接下来,我们就来看看概率模型独有评估指标.1.布里尔分数Brier Score...

    dbc750ba3173b4f1009f1a2599957fb1.png

    混淆矩阵和精确性可以帮助我们了解贝叶斯的分类结果。然而我们选择贝叶斯进行分类,大多数时候都不是为了单单追求效果,而是希望看到预测的相关概率。这种概率给出预测的可信度,所以对于概率类模型我们希望能够由其他的模型评估指标来帮助我们判断模型在“概率预测”这项工作上,完成得如何。接下来,我们就来看看概率模型独有的评估指标.

    1.布里尔分数Brier Score

    概率预测的准确程度被称为“校准程度”,是衡量算法预测出的概率和真实结果的差异的一种方式。一种比较常用的指标叫做布里尔分数,它被计算为是概率预测相对于测试样本的均方误差,表示为:

    343cc2622b98f43f98a2e9b522e53a46.png

    其中N是样本数量, pi为朴素贝叶斯预测出的概率,oi是样本所对应的真实结果,只能取到0或者1,如果事件发生则为1,如果不发生则为0。这个指标衡量了我们的概率距离真实标签结果的差异,其实看起来非常像是均方误差。布里尔分数的范围是从0到1,分数越高则预测结果越差劲,校准程度越差,因此布里尔分数越接近0越好。由于它的本质也是在衡量一种损失,所以在sklearn当中,布里尔得分被命名为brier_score_loss。我们可以从模块metrics中导入这个分数来衡量我们的模型评估结果:
    # encoding=utf-8from sklearn.metrics import brier_score_loss#注意,第一个参数是真实标签,第二个参数是预测出的概率值#在二分类情况下,接口predict_proba会返回两列,但SVC的接口decision_function却只会返回一列#要随时注意,使用了怎样的概率分类器,以辨别查找置信度的接口,以及这些接口的结构brier_score_loss(Ytest, prob[:,1], pos_label=1)#我们的pos_label与prob中的索引一致,就可以查看这个类别下的布里尔分数是多少
    布里尔分数可以用于任何可以使用predict_proba接口调用概率的模型,我们来探索一下在我们的手写数字数据集上逻辑回归,SVC和我们的高斯朴素贝叶斯的效果如何:
    # encoding=utf-8from sklearn.linear_model import LogisticRegression as LRfrom sklearn.metrics import brier_score_lossfrom sklearn.svm import SVCbrier_score_loss(Ytest, prob[:, 8], pos_label=8)logi = LR(C=1., solver='lbfgs', max_iter=3000, multi_class="auto").fit(Xtrain, Ytrain)svc = SVC(kernel="linear", gamma=1).fit(Xtrain, Ytrain)brier_score_loss(Ytest, logi.predict_proba(Xtest)[:, 1], pos_label=1)# 由于SVC的置信度并不是概率,为了可比性,我们需要将SVC的置信度“距离”归一化,压缩到[0,1]之间svc_prob = (svc.decision_function(Xtest) - svc.decision_function(Xtest).min()) / (        svc.decision_function(Xtest).max() - svc.decision_function(Xtest).min())brier_score_loss(Ytest, svc_prob[:, 1], pos_label=1)
    可以观察到,逻辑回归的布里尔分数有着压倒性优势,SVC的效果明显弱于贝叶斯和逻辑回归(如同我们之前在SVC 的讲解中说明过的一样,SVC是强行利用sigmoid函数来压缩概率,因此SVC产出的概率结果并不那么可靠)。贝叶斯位于逻辑回归和SVC之间,效果也不错,但比起逻辑回归,还是不够精确和稳定。

    2.对数似然函数 Log Loss

    另一种常用的概率损失衡量是对数损失(log_loss),又叫做对数似然,逻辑损失或者交叉熵损失,它是多元逻辑回归以及一些拓展算法,比如神经网络中使用的损失函数。它被定义为,对于一个给定的概率分类器,在预测概率为条件的情况下,真实概率发生的可能性的负对数.由于是损失因此对数似然函数的取值越小则证明概率估计越准确,模型越理想。值得注意得是对数损失只能用于评估分类型模型。对于一个样本,如果样本的真实标签Ytrue在{0,1}中取值,并且这个样本在类别1下的概率估计为Ypred ,则这个样本所对应的对数损失是:

    4b37e5acc097bf64c042c576cfe7b09d.png

    在sklearn中,我们可以从metrics模块中导入我们的对数似然函数:
    # encoding=utf-8from sklearn.metrics import log_loss# 第一个参数是真实标签,第二个参数是我们预测的概率log_loss(Ytest, prob)
    注意到,我们用log_loss得出的结论和我们使用布里尔分数得出的结论不一致:当使用布里尔分数作为评判标准的时候,SVC的估计效果是最差的,逻辑回归和贝叶斯的结果相接近。而使用对数似然的时候,虽然依然是逻辑回归最强 大,但贝叶斯却没有SVC的效果好。为什么会有这样的不同呢?因为逻辑回归和SVC都是以最优化为目的来求解模型,然后进行分类的算法。而朴素贝叶斯中,却没有最优化的过程。对数似然函数直接指向模型最优化的方向,甚至就是逻辑回归的损失函数本身,因此在逻辑回归和SVC上表现得更好。

    3.那什么时候使用对数似然,什么时候使用布里尔分数?

    在现实应用中,对数似然函数是概率类模型评估的黄金指标,往往是我们评估概率类模型的优先选择。但是它也有一些缺点.首先它没有界,不像布里尔分数有上限,可以作为模型效果的参考。其次,它的解释性不如布里尔分数,很难与非技术人员去交流对数似然存在的可靠性和必要性。第三,它在以最优化为目标的模型上明显表现更好。而且,它还有一些数学上的问题,比如不能接受为0或1的概率,否则的话对数似然就会取到极限值(考虑以 e为底的自然对数在取到0或1的时候的情况)。所以因此通常来说,我们有以下使用规则:

    需求

    优先使用对数似然

    优先使用布里尔分数

    衡量模型

    要对比多个模型或者衡量模型的不同变化

    量单一模型的表现

    可解释

    机器学习和深度学习之间的行家交流及学术论文

    商业报告,老板开会,业务模型的衡量

    最优化指向

    逻辑回归及SVC

    朴素贝叶斯

    数学问题

    概率只能无限接近于0或1,无法取到0或1

    概率可以取到0或1,比如树,随机森林


    欢迎大家点个在看,分享至朋友圈74f1f5dbde79a628170215bb6af771e3.png 记录技术记录我
    展开全文
  • 模型调参——二手车价格预测 一、调参 调参的目标 调参就是对模型的参数进行调整,以找到使模型性能最优的参数。调参的目的就是达到使偏差和方差的大...假设模型是一个多元函数F,其输出值为模型的准确度。我们可以固定
  • 01前言02分类问题解决本实战部分所使用数据集是关于手体字母识别,当一个用户在设备中写入某个字母后,该设备就需要准确地识别并返回写入字母实际值。很显然,这是一个分类问题,即根据写入字母特征信息...
  • 在数据分析领域,机器学习是一种重要的工具,机器学习模型...(当然,预测的准确度不仅仅取决于模型的选择,应用模型之前,对数据的清洗和处理也很重要。) # 运算速度 能够同时处理大量数据,可以在超短时间内极速学习
  • 将多个弱模型集成在一起,从而极大提高模型的泛化性和准确度。并且天然避免模型的过拟合。 典型的:Random Forest 随机森林 聚类模型 Clustering Algorithms 通过距离度量判断哪些样本是一类。 典型的:K-Means...
  • 煤灰黏度的预测研究

    2020-06-15 02:04:01
    采用高温旋转黏度计测定了麦垛山块煤(MK)灰黏度,计算出精度最高灰黏度预测模型为Urbain修正模型(离子熔体)。建立了灰组成、温度与灰黏度之间关系式,并由此式得出了无量纲煤灰黏温指数η=[|0.69·w(SiO2...
  • 过拟合:在训练数据上表现良好,在未知数据上表现差。...当然我们希望模型对于新数据的预测能够尽可能准确,这样才能说模型泛化的准确度比较高。 那么我们用什么样的标准来判断一个模型的泛化是比较好的,还是比较...
  • 在聊精准率、召回率之前,一般我们会看模型预测的准确率,即所有预测正确样本数/样本总数。 但分类准确度不能完全衡量模型好坏。 比如一个癌症预测系统,输入体征信息,判断是否有癌症。如果癌症在人类身上发生的...
  • 采用CRITIC法计算评价指标权重,引入可变模糊集理论合理确定评价指标对各级别相对隶属,建立煤层突出危险程度可变模糊集预测模型,依据危险等级特征值判断评价对象隶属类别。实例应用表明,该方法较好地考虑了模型...
  • 以Ada Boost算法为框架,结合可拓理论中可拓模型和关联函数理论,寻找物元本质特征元并以此作为弱分类器,提出了根据事物隶属所有类别关联判断事物类别方法.实验表明,可拓Ada Boost算法不仅用关联函数优化...
  • 精确Precision,又叫查准率,表示所有被我们预测为是少数类样本中,真正少数类所占比例。精确是”将多数类判错后所需付出成本“衡量。 #所有判断正确并确实为1样本 / 所有被判断为1样本 #对于...
  • 然后对8个测试样本与标准模型库进行测试,计算样本数据与各个标准模型的贴近,根据择近原则判断各样本所对应的标准模型。通过计算,8个测试样本预测结果与实测值完全相同,预测结果准确可靠。研究表明使用模糊模式识别...
  • 利用改进层次分析法确定影响煤与瓦斯突出各因素权重,用隶属构造了单因素模糊判别矩阵,用模糊综合评判建立了预测煤与瓦斯突出多种模型,并且进行了二级模糊综合评判。将改进层次分析法和二级模糊综合评判...
  • 提出了基于评分信息的、基于项目属性的和基于用户时效标签的3种个性化预测评分方法,将这3种评 估方法融合,通过调节参数 α , β 和 γ 平衡因子,判断这3种评估方法的影响因素权值,从而提高推荐的准确度....
  • 我们使用训练集数据进行训练得到机器学习模型,但是模型对于新数据的标签的预测准确度是我们十分关心的。计算模型的损失用来衡量一个模型的性能好坏。 训练集数据的分离,将原本的训练数据分为训练集和验证集两部分...
  • 评估和交叉验证评估如我们所见,每个估计器都有一个score函数用来判断测试数据预测的准确度。该值越大越好。>>> from sklearn import datasets, svm>>> X_digits, y_digits = datasets.load_...
  • 预测模型有优劣之分,好模型不仅可以较准确的预测终点事件发生概率(校准好),也可以很好地区分数据集中发生终点事件概率不同对象(区分好),还可以从中发现某种因素对终点事件可能影响(独立风险因素或保护...
  • 用knn算法来预测喜爱程度

    千次阅读 2016-08-29 20:17:34
    能根据对方的一些特征判断他...2、然后吧特征变量归一化去增加数据的可靠性,同时调整k值的参数来提高预测的准确度 3,准确度达到一定程度后,然后输入用户数据来进行匹配最优的人 #! /usr/bin/env python # -*- co
  • 我们又用排列组合的方法分别删除其中的一种、两种和三种元素,分别计算此时代入前60组数据时的准确度,通过比较从而确定主要影响元素。保留了Ca,Cu,Fe,Mg四种元素,除去非主因素的干扰,用同样的方法重新计算该模型...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

判断预测模型的准确度