我正在使用随机森林解决一个分类问题。我通过词袋模型将一个句子转换为数字,并为其添加了标签,然后构建了一棵树。
data_train = [[1.0, 1.0], [2.0, 2.0]]label_train = [1,2]estimator = RandomForestClassifier()estimator.fit_transform(data_train, label_train)
我准备了一个测试数据,这是一个句子,用于尝试预测,但它不起作用。
test_data = [[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]]label_predict = estimator.predict_proba(test_data)ValueError: Number of features of the model must match the input. Model n_features is 2 and input n_features is 12
我知道它说元素的数量不匹配。但句子中的单词数量不同,我认为必须不同。我应该如何解决这个问题?
回答:
在你的例子中,训练数据有两个特征/维度/列(行数对这个问题无关紧要):
[[1.0, 1.0], [2.0, 2.0]]
并且你为每一行/样本都有一个标签。
[1, 2]
你的测试数据必须看起来相似,即必须具有相同数量的特征/维度/列。例如,这将是可以的:
[[1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0], [1.0, 1.0]]
你可以有不同数量的行,但列数必须相同。在这种情况下,你有2列和6行,因此你将通过predict_proba
获得6个标签作为结果。