Python 如何修复ValueError:要解包的值太多(预期为2个)

Python 如何修复ValueError:要解包的值太多(预期为2个),python,scikit-learn,Python,Scikit Learn,我试图使用python中的sorted() ValueError:要解压缩的值太多(应为2个) 这是我的密码: from treeinterpreter import treeinterpreter as ti X = processed_data[0] y = prediction rf = pickle.load(open("original/PermutationModelNew.sav", "rb")) prediction, bias, co

我试图使用
python
中的
sorted()

ValueError:要解压缩的值太多(应为2个)

这是我的密码:

from treeinterpreter import treeinterpreter as ti

X = processed_data[0]
y = prediction

rf = pickle.load(open("original/PermutationModelNew.sav", "rb"))
prediction, bias, contributions = ti.predict(rf, X)

print("Bias (trainset mean)", bias[0])
c, feature = sorted(zip(contributions[0],X.columns))
X
是测试数据,如下所示:

Age DailyRate DistanceFromHome  ... BusinessTravel_ OverTime_ Over18_
0  39       903                2  ...               2         1       1

[1 rows x 28 columns]
[0]
y
看起来是这样的:

Age DailyRate DistanceFromHome  ... BusinessTravel_ OverTime_ Over18_
0  39       903                2  ...               2         1       1

[1 rows x 28 columns]
[0]

有人能帮我修一下吗?我正在使用这个

这里是一个关于我如何对贡献进行排序的示例(我创建了一个包含结果的字典,然后将其转换为数据帧,但您不必使用字典):

尝试:


这应该可以解决您的错误消息。

sorted()
返回生成器,我猜有两个以上的元素,因此您出现了此错误。您能帮我修复此错误吗?你所说的
2
元素是什么意思@OlvinRoght
c,feature=sorted(…)
在这段代码中,您试图将
sorted()
的结果解压缩到两个变量中。只有当有两个项目的iterable时,它才会起作用,如果有更多或更少的项目,你会得到一个异常。你可能想要类似“对于c,排序中的功能(…)”这样的东西。你链接到的示例中有
对于c,排序中的功能(…)
。正如其他人所说,您需要它,因为
sorted()
正在返回一个生成器。