- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是围绕我遇到的特定分类问题。
我的训练数据完整且没有缺失数据。我可以围绕它构建任何分类模型(SVM、随机森林等)以获得良好的结果。到目前为止, pig 还没有在对流层中飞行。
问题是我想将这些模型应用于缺少特征的数据。我对任何形式的估算都不感兴趣。我想要一个“不确定性”度量,该度量可以增加更多缺失的特征,并且我仍然希望模型能够输出结果(即使不确定性很高)。例如,对于一条记录,如果 10 个特征中有 5 个为空数据,则模型将给出一个类别,但不确定性为 50%(理想情况下我可以指定每个变量的“重要性”程度)。
我在网上没有遇到过类似的事情,我已经找了一段时间了。感谢您的帮助!
最佳答案
让我们从非常简单的模型开始 - 线性模型 ( f(x) = sign(<w,x> + b)
)。我们还假设现在给定一个缺失值 x_i=N/A
的向量并且相应的权重非零( w_i != 0
);不失一般性让w_i>0
,然后我们可以看到,我总是可以“输入”x_i
如此之小(非常非常负的值,例如 -10e10000
),模型将回答 -1
对称地,如此大的值将输出 +1
。为了做出预测(并进一步量化确定性),我们确实需要假设 x_i
的可能值。我希望这个简单的例子表明,如果没有任何假设,我们就会迷失——我们什么也做不了,没有预测,没有确定性——什么都没有。这是机器学习中众所周知的事实——如果没有模型引起的偏差,我们就无法进行预测。在这种情况下 - 我们对缺失值进行建模。
我们需要就值(value)观达成一致。有很多选择:
好的,它与数据插补有何不同?数据插补假设填充缺失值,它会给您一个点。我在这里所说的是将我们的观点与缺失值视为概率分布 - 因此更多的是贝叶斯方法。现在它不再是一个数据点,而是一个无限的点云,具有不同的密度。
不幸的是,这里事情变得复杂,因为它完全是模型特定的问题。因此,根据您使用的分类器/回归器类型,您需要不同的方法。最简单的情况是随机森林,所以我将重点关注这一点,稍后为任何模型提供一个效率较低但更通用的解决方案。
在决策树中,每个节点都是对某些特征的决策。因此,为了对我们的“分布”进行预测,我们只需将这一点放入决策过程中 - 如果节点询问现有特征 - 我们会正常处理它。当我们被问到缺少功能时该怎么办?我们分割执行,并计算两条路径,但权重是根据分布和节点中的阈值计算的。例如,假设我们选择了 [0,1] 上的均匀分布,阈值现在为 0.75(这意味着该节点询问缺失值是否 <0.75 或 >=0.75)。我们将计算分成两部分并检查预测,决策 <0.75 的部分获得权重 0.75(因为它是积分 INT_{0}^{0.75} pdf(x) dx
,其中 pdf(x)
是我们的均匀分布),第二条路径获得权重 0.25。最后我们得到期望值。我们的信心是什么?您照常计算,或对置信区间执行更复杂的分析。
最通用的方法(可作为黑盒用于任何模型)是蒙特卡罗方法。我们有我们的发行版pdf(x)
,所以我们从这个分布中重复采样,分类并记录输出。最后 - 我们收集选票并获得分类和置信度。伪代码如下
function CLASSIFY_WIT_NA(x, probability_model, model, k=1000):
pdf <- probability_model(x.missing_values)
predictions <- empty set
for i=1 to k
x' ~ pdf
prediction <- model(x')
predictions.add(prediction)
class <- most_common_element_of(predictions)
confidence <- count(class, predictions) / k
关于machine-learning - 机器学习: quantifying uncertainty around missing data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636281/
考虑以下 Perl 风格的?? (我想不是吧?)regex to test if a string is a palindrome : ^((.)(?1)\2|.?)$ try it here . 以
我发现了一个问题,如以下简单的 SMT-LIB 程序所示。 SMT-LIB 代码: (declare-fun isDigit (Int) Bool) (assert (forall ((x Int))
我一直在达夫尼一瘸一拐地走着,不了解触发器。也许正因为如此,我写的程序似乎让验证者很为难。有时我会花大量时间摆弄我的证明,试图说服 Dafny/Boogie 它是有效的;当我开始工作时,有时验证速度很
我一直在达夫尼一瘸一拐地走着,不了解触发器。也许正因为如此,我写的程序似乎让验证者很为难。有时我会花大量时间摆弄我的证明,试图说服 Dafny/Boogie 它是有效的;当我开始工作时,有时验证速度很
我无法让这个正则表达式在 JavaScript 中工作: pat = new RegExp("Lorem(?=([^Lorem'); 我收到错误:invalid quantifier . 但是这里可以
我正在审查一个测试,并注意到所有格量词实际上在 str.split() 中起作用。所以我写了以下代码: String str = "aaaaab"; if(str.matches("a*+b"))
基于 https://www.plivo.com/blog/Send-templatized-SMS-from-a-Google-spreadsheet-using-Plivo-SMS-API/ 我有
当我在 javascript 中使用这个正则表达式声明时: var phoneRegExp = /^(\+\s?)?((? Phone Number RegExp Test
我有一个正则表达式 (-|+)?,但是当我在 regex101.com 上运行它时出现错误: +: Preceding token is not quantifiable 错误是什么意思?谢谢 最佳答
使用以下输入: 223.25.99.163 1180 这个正则表达式不匹配 (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*?(\d{1,5}) 最佳答案 您的问题很可能是
我在 regex buddy 中构建并测试了这个 regex。 "_ [ 0-9]{10}+ {1}+[ 0-9]{10}+ {2}+[ 0-9]{6}+ {2}[ 0-9]{2}" 当我在 .Net
当我得到 Z3 OCaml API 的量词主体时,例如一个字符串为的量词 (exists ((u_1 Int)) (= u_1 x5)) 通过 Quantifier.get_body,我获得了表达式
假设我想在一个大号(300,000个字母)中找到“dogs”一词,并且字母之间的距离恰好是之间的40,000个字母。所以我做: $mystring =~ m/d.{40000}o.{40000}g.{
参见here了解我正在尝试做的事情的一些背景。简而言之,我想匹配 /path/foo/ 下的任何路径,除非叶目录(不是叶 文件)是 script. 该问题中的一些答案似乎有效,但我试图找出为什么我尝试
我编写了以下表达式,在每个 x 字(例如 3)后跟一个空格后拆分一个字符串。我的问题是我需要保留全部内容。但是我找不到使用后视等在 Java 中完成此操作的方法。 谁有这方面的经验? String t
哪一个性能更好,或者(如果相等)哪个读起来更好?我试图匹配一对括号内的所有内容。 Pattern p1 = Pattern.compile("\\([^)]*\\)"); Pattern p2 = P
你能解释一下这是如何工作的吗?这是一个例子: 首先,我尝试使用下面的正则表达式来匹配条件注释中的内容: //s 它失败了,因为正则表达式匹配了第一个 .然后我尝试使用另一种带有先行
即使对于最简单的算术 SMT 问题,也需要存在量词来声明符号变量。和 ∀量词可以变成∃通过反转约束。所以,我可以在 QF_* 中同时使用它们。逻辑和它的工作原理。 我认为,“无量词”对于此类 SMT
我正在尝试将以下 URL 验证函数从我的 PHP 代码转移到我的 javascript 代码: this.validate_url = function(field) {
我正在尝试制作一个正则表达式,它可以从字符串中挑选出单词,但如果它们位于标签内,则忽略它们。例如:即使搜索词是 SPAN,也不要替换 span 标签。 到目前为止我所拥有的是: (?) http://
我是一名优秀的程序员,十分优秀!