我正在做一个数据分析/机器学习项目。
主要目标是确定在大型数据集中哪个组件导致了问题。
数据集包含很多行,每一行代表一个测试,每个测试包含测试名称、使用的组件和结果等信息
例如,数据如下
测试 | 使用的组件 | 结果 |
---|---|---|
1 | 1,2,3,7 | 失败 |
2 | 2,3 | 通过 |
3 | 1,3,4,5 | 失败 |
1 | 3,4 | 通过 |
1 | 5,6,7 | 失败 |
1 | 4,5,6 | 通过 |
1 | 7 | 失败 |
1 | 1,2 | 失败 |
1 | 2,5,6 | 通过 |
1 | 2,3,5,7 | 失败 |
1 | 2,3,4 | 通过 |
1 | 1,2,3,4,5,6,7 | 失败 |
从上表中使用人类解释,我们可以发现 只要有“1”,结果就会失败 只要有“7”,结果就失败 因此,我们可以得出结论,组件1和7有故障,不能用于测试。请注意,一次可能使用超过 100 个组件,并进行数百万次测试。还有一种情况,有时 1 会通过,有时 7 会通过,但并不总是 100% 失败。另一种情况是,组合使用组件也可能导致失败,例如,如果 2 和 3 一起使用,则会失败,但如果使用 2 而不使用 3,则可能会通过。类似这样的事情。
我尝试过Python中的决策树, 使用 scikit-learn 中的 DecisionTree 进行训练并提取 __feature_importance 它确实给了我哪个功能最重要的结果,但没有告诉我该功能是积极还是消极影响的程度。为什么它只显示重要性的值,如何找到重要性