首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RandomForestClassifier错误:必须与输入匹配的功能数量

RandomForestClassifier错误:必须与输入匹配的功能数量
EN

Stack Overflow用户
提问于 2015-03-03 17:54:23
回答 1查看 6.2K关注 0票数 1

相对来说,我刚开始学习,并且一直在尝试使用以下代码:

代码语言:javascript
复制
from sklearn.ensemble import RandomForestClassifier
from numpy import genfromtxt, savetxt

def main():
    #create the training & test sets, skipping the header row with [1:]
    dataset = genfromtxt(open('mypath\data1.csv','r'), delimiter=',', dtype='f8')[1:]    
    target = [x[0] for x in dataset]
    train = [x[1:] for x in dataset]
    test = genfromtxt(open('mypath\data1.csv','r'), delimiter=',', dtype='f8')[1:]

    #create and train the random forest
    #multi-core CPUs can use: rf = RandomForestClassifier(n_estimators=100, n_jobs=2)
    rf = RandomForestClassifier(n_estimators=100)
    rf.fit(train, target)

    savetxt(myoutput\data1_output.csv', rf.predict(test), delimiter=',', fmt='%f')

if __name__=="__main__":
    main()

此代码在包含三列的.csv文件上运行随机林分类器,其中第一列包含标签,而其他两列包含功能。在运行此程序时,我会得到以下错误:

代码语言:javascript
复制
ValueError: Number of features of the model must  match the input. Model n_features is 2 and  input n_features is 3

我最初的假设是,有一个名为n_features的组件,我需要根据我的用例进行调整。然而,它似乎比这更复杂。有谁能解释我是否以及如何获得我上面描述的类型的.csv来成功地运行这段代码?

我确实看到了这个职位,这表明问题在于代码包含了我的标签作为一个特性。然而,我并不真正理解这个问题的解决方案是如何解决这个问题的,因此非常希望得到更多的解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 13:15:39

csv文件的形状是(n_examples, 3)。调用时,将此数组拆分为两个包含响应变量和输入变量的列表:

代码语言:javascript
复制
target = [x[0] for x in dataset]
train = [x[1:] for x in dataset]

因此,target是形状(n_examples, 1)train是形状(n_examples, 2)。接下来,您将读取同一个csv文件进行测试(我不知道为什么要使用培训数据进行测试,也不知道为什么此时需要再次读取该文件)。无论如何,这意味着test是shape (n_examples, 3)

预测使用通过调用fit学习的模型参数获取输入并生成响应。因此,predict希望接收形状(2,)的输入变量列表或形状(n_examples, 2)数组。你应该看看错配现在发生在哪里。

若要修复,请打电话给rf.predict(test[1:, 1:])。该切片从第1行起获取所有内容,从第1列起跳过第一行,假设第一行包含标题信息(您应该检查标题是否确实已读取),并跳过每一行的第一列以跳过每个示例的响应变量。

当然,由于测试是从与培训数据相同的文件中读取的,这等同于rf.predict(train)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28838591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档