首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确定机器学习模型的有用特性

确定机器学习模型的有用特性
EN

Data Science用户
提问于 2018-05-30 15:59:42
回答 3查看 10.5K关注 0票数 3

我正在处理一个具有数百个特性的数据集。我希望创建一个简单的机器学习模型,使用原始数据集的7-10特性。我的问题是:

我可以使用什么量化指标来确定一个特性对学习模型有用?

我一直在比较目标均值在特征组中的分布情况,以及整个数据集的目标均值。例如,以二进制特性X和二进制目标为例。假设目标在处理整个数据集时的平均值为0.10。

为了分析特征X,我取特征X中每个组的目标均值。

代码语言:javascript
运行
复制
mean (X=0) = 0.07
mean (X=1) = 1.15

这样,我就可以观察到一个特征对目标的影响。

我知道,必须有一些更强的度量标准,人们使用这些度量来确定特性的强度。在学校里,我用p检验来确定变量的统计意义。在DS/ML中有类似的吗?

EN

回答 3

Data Science用户

回答已采纳

发布于 2018-05-30 16:41:58

我建议看一下这一页,了解更多的想法:

特征选择

话虽如此,但有几个想法很快就浮现出来了,就是:

  1. 使用基于树的方法(如随机森林)并查看您的特性重要性。Scikit Learn有一个方便的类来做这件事--参见上面的链接。
  2. 使用某种正则化/惩罚,如L1或L2正则化。这将迫使无用特性的参数接近于零。
  3. 递归删除变量,查看输出结果,并进行交叉验证。同样,sklearn有一种方法来解决这个问题。

一般来说,这些方法将是“昂贵的”,因为您正在安装多个模型,以使您的地方,您需要去。

票数 2
EN

Data Science用户

发布于 2018-05-30 23:06:06

您可以逐步(向后或向前)删除或添加功能子集。对于功能选择过程,您需要一个度量标准来度量哪些特性应该包含在可用数据的简化数据集中。一个重要的熵测度是互信息。

互信息是两个(可能是多维的)随机变量X和Y之间的度量,它量化了一个随机变量通过另一个随机变量获得的信息量。相互信息是由

I(X;Y)=∫∫p(x,y)logp(x,y)∫∫(X)p(Y)dxdy,

其中p(x,y)是X和Y的联合概率密度函数,其中p(x)和p(y)是边缘密度函数。相互信息决定了联合分布p(x,y)与因式边际分布的乘积有多相似。如果X和Y是完全无关的(因此是独立的),那么p(x,y)就等于p(x)p(y),这个积分就是零。

如果我们假设X是一个特征,Y是目标变量,那么我们就可以度量它们的互信息。我们希望保留它们与目标变量之间具有最高互信息的特性。

除了选择适当特征的逐步算法外,还有一些贪婪的方法试图使联合分布与目标变量之间的互信息最大化。

下面你可以找到一些指示性的链接

基于互信息的特征选择方法综述

基于联合互信息最大化的特征选择

票数 1
EN

Data Science用户

发布于 2019-10-14 06:50:32

在预测y_i时,有很多方法可以估计一个特性有多好,其中一个好的方法就是使用您想要检查它的重要性的特性来构建一个合适的ML模型。在这种情况下,我们将构建一个逻辑回归模型,只使用您想要检查它是否重要的特性。

请记住,如果一个分类特性将其编码为基于您所使用的模型的向量形式,例如(一次热编码)对线性模型最有效,而响应编码对于基于树的模型非常有效。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/32407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档