何时在机器学习中使用生成算法?

假设我有一个由(x, y)样本组成的训练集。

要应用生成算法,比如高斯判别算法,我必须假设

p(x|y) ~ Normal(mu, sigma) 对每一个可能的sigma都成立

还是我只需要知道给定y的情况下x ~ Normal(mu, sigma)

我如何评估p(x|y)是否足够好地遵循多元正态分布(达到某个阈值),以便我可以使用生成算法?


回答:

这些问题真不少。

要应用生成算法,比如高斯判别算法,我必须假设

p(x|y) ~ Normal(mu, sigma) 对每一个可能的sigma都成立

不,你必须假设对于某个mu和sigma对来说这是正确的。实际上,你不会知道mu和sigma具体是多少,所以你需要估算它们(频率学派,最大似然/最大后验估计),或者更好的是将参数估计的不确定性纳入预测中(贝叶斯方法)。

我如何评估p(x|y)是否遵循多元正态分布?

传统上,使用拟合优度测试。然而,如果x的维度超过几个,这个方法就不适用了,因为标准测试涉及到箱子中的项目数量,而在高维度下所需的箱子数量是天文数字,因此预期计数非常低。

更好的方法是问自己:我有哪些选项来建模x的(条件)分布?你可以使用模型比较技术在这些选项之间进行比较。请阅读关于模型检查和比较的内容。

最后,你的最后一点:

足够好(达到某个阈值)以便我可以使用生成算法?

许多生成方法的悖论,包括例如Fisher的线性判别分析,以及朴素贝叶斯分类器,就是即使模型对数据的拟合很差,分类器仍然可以工作得很好。虽然没有特别合理的理由解释为什么会这样,但许多人已经观察到这在经验上是正确的。是否有效可以比检查假设的分布是否很好地解释数据更容易验证:只需将数据分为训练集和测试集,然后找出答案!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注