MutualInformationFeatureSelectingEstimator 类

定义

选择所有指定列中按相互信息排序的前 k 个槽,标签列 (可通过观察指定列的值) 了解标签的内容。

public sealed class MutualInformationFeatureSelectingEstimator : Microsoft.ML.IEstimator<Microsoft.ML.ITransformer>
type MutualInformationFeatureSelectingEstimator = class
    interface IEstimator<ITransformer>
Public NotInheritable Class MutualInformationFeatureSelectingEstimator
Implements IEstimator(Of ITransformer)
继承
MutualInformationFeatureSelectingEstimator
实现

注解

估算器特征

此估算器是否需要查看数据来训练其参数?
输入列数据类型 数值、 文本 数据类型的矢量或标量
输出列数据类型 与输入列相同
可导出到 ONNX

更准确地讲,互信息可以编写为:

$\text{MI} (X,Y) = E_{x,y}[\log (P (x,y) ) - \log (P (x) ) - \log (P (y) ) ]$ ,其中 $x$ 和 $y$ 是随机变量 $X$ 和 $Y$ 的观察值。

其中,预期 E 接管 X 和 Y 的联合分布。此处 P (x,y) 是 X 和 Y 的联合概率密度函数,P (x) 和 P (y) 分别是 X 和 Y 的边际概率密度函数。 通常,因变量 (或标签) 与自变量 (或特征) 之间的相互信息较高,意味着标签比特征具有更高的相互依赖关系。 它保留输出特征中的顶部槽,其中具有标签的最大相互信息。

例如,对于下面的“特征”和“标签”列,如果指定需要前 2 个槽 (与标签列) 相关性较高的向量元素,则应用此估算器的输出将仅保留第一个和第三个槽,因为它们的值与 Label 列中的值更相关。

Label 特征
True 4,6,0
False 0,7,5
True 4,7,0
False 0,7,0

在拟合估算器并使用生成的转换器转换数据后,上述数据集将如下所示:

Label 特征
True 4,0
False 0,5
True 4,0
False 0,0

有关使用示例的链接,请查看“另请参阅”部分。

方法

Fit(IDataView)

训练并返回 ITransformer

GetOutputSchema(SchemaShape)

返回 SchemaShape 转换器将生成的架构的 。 用于管道中的架构传播和验证。

扩展方法

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

将“缓存检查点”追加到估算器链。 这将确保针对缓存的数据训练下游估算器。 在接受多个数据传递的训练程序之前设置缓存检查点会很有帮助。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

给定估算器后,返回一个包装对象,该对象在调用 后 Fit(IDataView) 将调用委托。 对于估算器来说,返回有关适合对象的信息通常很重要,这就是方法返回特定类型对象(而不仅仅是常规 ITransformer)的原因Fit(IDataView)。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此我们可能需要通过 EstimatorChain<TLastTransformer> 构建估算器链,其中要获取转换器的估算器埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加一个委托,该委托将在调用 fit 后调用。

适用于

另请参阅