Python ValueError:使用管道拟合模型时,值太多,无法解压缩(预期为3)

Python ValueError:使用管道拟合模型时,值太多,无法解压缩(预期为3),python,machine-learning,pipeline,valueerror,Python,Machine Learning,Pipeline,Valueerror,我对这一点还是新手,还有很多东西要学,所以在我学习如何做好这一点的时候,请容忍我。我使用了一个Kaggle数据集,希望能够使用管道使我的代码更加整洁,并简化清理分类和数字数据的过程。我的工作中没有错误,直到最后我尝试拟合我的模型,它给了我ValueError:太多的值需要解包(预期3个)。任何帮助都将不胜感激 我已经看过了其他类似的问题,但还没有找到一个与我的问题相关的问题。我想这可能与变量命名有关,但到目前为止我还没有发现我的错误 df=pd.read\u csv('master.csv'))

我对这一点还是新手,还有很多东西要学,所以在我学习如何做好这一点的时候,请容忍我。我使用了一个Kaggle数据集,希望能够使用管道使我的代码更加整洁,并简化清理分类和数字数据的过程。我的工作中没有错误,直到最后我尝试拟合我的模型,它给了我ValueError:太多的值需要解包(预期3个)。任何帮助都将不胜感激

我已经看过了其他类似的问题,但还没有找到一个与我的问题相关的问题。我想这可能与变量命名有关,但到目前为止我还没有发现我的错误

df=pd.read\u csv('master.csv'))
df=df.下降('国家/年',轴=1)
df[‘本年度gdp(美元)’]=df[‘本年度gdp(美元)’].str.replace(’,’,“”)
df[‘本年度gdp(美元)’]=df[‘本年度gdp(美元)’]。astype(str)。astype(浮动)
#打印(df.info())
y=df.自杀事件
特征=[“国家”、“性别”、“年龄”、“世代”、“年份”、“人口”,
“年度人类发展指数”、“年度国内生产总值($)”、“人均国内生产总值($)”]
X=df[features].copy()
X_序列,X_有效,y_序列,y_有效=序列测试分割(X,y,序列大小=0.8,测试大小=0.2,随机状态=0)
从sklearn.compose导入ColumnTransformer
从sklearn.pipeline导入管道
从sklearn.impute导入SimpleImputer
从sklearn.preprocessing导入OneHotEncoder
数字变压器=简单计算机(策略='mean')
分类变压器=管道(步骤=[
('inputer',simplemputer(strategy='most_frequency')),
('onehot',onehotcoder(handle_unknown='ignore'))
])
预处理器=列转换器(
变形金刚=[
(“数字”、“数字”、“自杀人数”、“人口”、“年度人类发展指数”、“年度gdp($)”、“人均gdp($)”),
('cat',分类变压器,'country','sex','generation','year','age')
])
模型_1=随机森林回归器(n_估计量=100,随机状态=0)
my_pipeline=pipeline(步骤=[('preprocessor',preprocessor),
(“模型”,模型1)
])
my_pipeline.fit(X_train,y_train)
回溯(最近一次呼叫最后一次):
文件“…自杀率/SR.py”,第86行,在
my_pipeline.fit(X_train,y_train)
文件“…pipeline.py”,第265行,适合
Xt,拟合参数=自拟合(X,y,**拟合参数)
文件“…pipeline.py”,第230行,以_-fit格式
**拟合参数步骤[名称])
调用中第342行的文件“…memory.py”__
返回self.func(*args,**kwargs)
文件“…pipeline.py”,第614行,在fit\u transform\u one中
res=变换器。拟合变换(X,y,**拟合参数)
文件“…组成\\u column\u transformer.py”,第445行,在fit\u transform中
自我验证变压器()
文件“…ompose\ \u column\u transformer.py”,第256行,在\u validate\u transformers中
名称,变形金刚,uz=zip(*self.transformers)
ValueError:要解压缩的值太多(应为3个)

也许可以试试名字、变形金刚、*.=zip(*self.transformers)而不是嗯,我需要调查一下。我还没用过,我想出来了。我需要把我的特征用括号括起来。谢谢你的帮助。预处理器=ColumnTransformer(transformers=[('num',numeric',numeric',transformer,['sequences',no','population','HDI for year','gdp for year($),'gdp for year($)],('cat',cate',categorical_transformer,['country','sex','generation','year','age'])@jpk,您能否将此作为答案发布,并说明错误和解决方案以及括号中的差异?