泉州百度推广咨询,安徽网站推广优化,如何设计中文网站,小程序平台源码我正在训练一个具有10个左右分类输入的神经网络。 在对这些分类输入进行一次热编码之后#xff0c;我最终将大约500个输入馈入网络。我希望能够确定我每个分类输入的重要性。 Scikit-learn具有许多功能重要性算法#xff0c;但是这些算法中的任何一种都可以应用于分类数据输入…我正在训练一个具有10个左右分类输入的神经网络。 在对这些分类输入进行一次热编码之后我最终将大约500个输入馈入网络。我希望能够确定我每个分类输入的重要性。 Scikit-learn具有许多功能重要性算法但是这些算法中的任何一种都可以应用于分类数据输入吗 所有示例均使用数字输入。我可以将这些方法应用于一键编码输入但是在应用于二进制输入后如何提取含义 如何判断分类输入中的特征重要性Ive已成功使用支持discrete_featuresTrue的mutual_info_score。看看scikit-learn.org/stable/modules/谨慎使用单点编码因为您将特征空间的维数增加了50倍。您还可以考虑使用随机森林而不是神经网络因为随机森林方法具有内置的特征重要性表征。感谢您的意见。 IgorRaush我可以像这样使用common_info_classif函数l_importance mutual_info_classif(X, y, discrete_featuresTrue)但是可以确认我在X数组中编码离散特征的方式。显然它必须是一个numpy数组因此大多数输入都必须进行编码。我可以使用离散索引吗如果我对输入进行了二值化那么将很难从功能输出中提取含义因为功能是如此分离。如果这些是我的输入X [[A, X, alpha], [B, X, beta], [B, Y, gamma]]我将如何编码谢谢 -VivekKumar感谢您的回复。我知道如何编码分类输入。您是否暗示最佳实践是在单热编码输入上运行标准特征选择算法如果是这种情况您将如何包装输出以确定每个功能的重要性而不是确定每个热编码列的重要性谢谢 A555h5似乎实际上并不需要是一个Numpy数组您提供的列表也可以作为输入正常工作(尽管您可以将Numpy数组与dtypenp.str一起使用该数组包含字符串并且也可以使用)。通常对于这种情况您将使用索引编码其中分类功能的每个级别都映射到整数0、1等。请查看Scikit-learn中的LabelEncoder或Pandas中的分类系列。在回答您对Vivek的问题时这取决于您要完成的工作。您可以使用重要性度量来修剪整个功能(功能选择)也可以一键编码它们并仅修剪某些级别(值选择)。我见过两种使用方法。感谢您的回答IgorRaush-一个快速的问题。如果我在同一数据集中混合了分类特征和数字特征那么该如何编码我想一起考虑它们因为我需要了解它们之间的相互影响。我应该将数字视为分类数字(因为失去幅度这似乎是错误的)还是对分类数字使用索引编码方法并与数字结合再次感谢在某些情况下在进入scikit-learn之前可能值得探索您的数据集。我通常使用Wekas GUI玩一些。在Weka中您可以使用多种算法来可视化和评估特征。如果数据集太大则将其稍微修剪一下。在此处获取Wekacs.waikato.ac.nz/ml/weka有关此处的属性选择的更多信息wiki.pentaho.com/display/DATAMINING/AttributeSelection由于编码特征之间的关系在一种热编码上使用特征选择算法可能会导致错过。例如如果您将n个值的特征编码为n个特征并且已选择m个中的n-1个则不需要最后一个特征。由于您的功能数量很少(?10)因此功能选择对您的帮助不大因为您可能只能减少其中的几个而不会丢失太多信息。您写道一种热编码将10个要素转换为500个这意味着每个要素都有大约50个值。在这种情况下您可能会对离散化算法更感兴趣可以对值本身进行操作。如果值隐含顺序则可以对连续特征使用算法。另一种选择是简单地忽略稀有值或与概念没有强相关性的值。如果您使用特征选择则大多数算法将对分类数据起作用但您应提防极端情况。例如 Igor Raush建议的相互信息是一种很好的措施。但是具有许多值的特征往往比具有较少值的特征具有更高的熵。反过来这可能会导致更高的相互信息并会偏向许多价值特征。一种解决此问题的方法是通过将互信息除以特征熵来进行归一化。可能会帮助您的另一套功能选择算法是包装器。他们实际上将学习委托给分类算法因此只要分类算法可以应对它们就不会影响表示。