【问题标题】:How to calculate the information gain and entropy of a dataset with ten features?如何计算具有十个特征的数据集的信息增益和熵?
【发布时间】:2020-09-22 01:36:03
【问题描述】:

我有一个 10K 的数据集,我创建了以下十个特征:

  • 距离 -(0 或 1)
  • IsPronoun -(对或错)
  • 字符串匹配 - (真或假)
  • 指示 NP -(如果 i 和 j 是指示代词,则为真)
  • 数字一致 - (检查 i 或 j 是单数还是复数代词)
  • 语义兼容性 -(如果 i 和 j 在语义上兼容)
  • 性别一致 - (检查 i 或 j 是男性还是女性)
  • IsProperNoun -(查找 i 或 j 是否为专有名词)
  • 同位-(查找i是否与j相反)
  • 别名 - (查找 i 是否为 j 的别名,反之亦然)

每个特征都有数据集的输出。现在我想做树。但首先,我应该如何计算熵和信息增益?

【问题讨论】:

    标签: algorithm machine-learning decision-tree text-classification multilabel-classification


    【解决方案1】:

    您可以使用来自 sklearn.feature_selection 的mutual_info_classif,但您需要定义您的目标(依赖)变量。假设您的所有属性都是离散的(名义上的):

    from sklearn.feature_selection import mutual_info_classif
    print (mutual_info_classif(X_vec, Y, discrete_features=True))
    

    【讨论】:

    • 问题是数据集是非结构化的,所有特征都从数据集中提取它自己的输出。我应该如何使用sklearn来定义x和y的值等等?
    • 所以你必须先构建它。 Y 始终是目标(因)变量——你想预测什么? X 是一组自变量 - 您可以使用它们来预测目标变量。
    • 那么数据集的结构应该如何呢?因为如果 i 和 j 都有上述特征的输出,我们就对 i 和 j 进行操作。
    • 将 i 和 j 也添加为特征
    • 是的 - 但目标变量不应该是 X 的一部分 - 它应该是一个单独的向量
    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 2011-07-24
    • 2010-12-23
    • 2016-02-23
    • 2014-10-17
    • 2015-07-28
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多