【问题标题】:Number of features of the model must match the input模型的特征数量必须与输入匹配
【发布时间】:2016-08-11 21:35:56
【问题描述】:

由于某种原因,此数据集的特征被解释为行,“模型 n_features 为 16,输入 n_features 为 18189”其中 18189 是行数,16 是正确的特征列表。

可疑代码在这里:

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",?

【问题讨论】:

    标签: python numpy scikit-learn sklearn-pandas


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2019-03-28
      • 2017-10-17
      • 2017-09-29
      • 1970-01-01
      • 2015-05-04
      • 2021-07-28
      • 2017-11-04
      • 2021-04-14
      相关资源
      最近更新 更多