模型的特征数量必须与输入匹配 [英] Number of features of the model must match the input

查看:1011
本文介绍了模型的特征数量必须与输入匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出于某种原因,此数据集的要素被解释为行,模型n_features为16,输入n_features为18189",其中18189是行数,16是正确的要素列表.

For some reason the features of this dataset is being interpreted as rows, "Model n_features is 16 and input n_features is 18189" Where 18189 is the number of rows and 16 is the correct feature list.

可疑代码在这里:

for var in cat_cols:
    num = LabelEncoder()
    train[var] = num.fit_transform(train[var].astype('str'))
    train['output'] = num.fit_transform(train['output'].astype('str'))

for var in cat_cols:
    num = LabelEncoder()
    test[var] = num.fit_transform(test[var].astype('str'))
    test['output'] = num.fit_transform(test['output'].astype('str'))


clf = RandomForestClassifier(n_estimators = 10)

xTrain = train[list(features)].values
yTrain = train["output"].values

xTest = test[list(features)].values
xTest = test["output"].values 

clf.fit(xTrain,yTrain)
clfProbs = clf.predict(xTest)#Error happens here.

有人有什么主意吗?

示例培训日期csv

tr4,42,"JobCat4","divorced","tertiary","yes",2,"yes","no","unknown",5,"may",0,1,-1,0,"unknown","TypeA"

示例测试数据csv

tst2,47,"JobCat3","married","unknown","no",1506,"yes","no","unknown",5,"may",0,1,-1,0,"unknown",?

推荐答案

您有一个小的错字-您创建了变量xTest,然后立即将其覆盖为不正确的内容.将有问题的行更改为:

You have a small typo - you created the variable xTest and then are immediately overwriting to something incorrect. Change the offending lines to:

xTest = test[list(features)].values
yTest = test["output"].values 

这篇关于模型的特征数量必须与输入匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆