我正在使用Random Forests解决一个分类问题。我用BOW将一个句子转换为num。我在其中放了一个标签,并构建了一个树。
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,这是一个尝试预测的句子。但它没有用。
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
我知道它说元素的数量并不匹配。但是句子中的单词数量是不同的,它必须是不同的,我想。我该怎样解决这个问题?
答案 0 :(得分:1)
在您的示例中,您的列车数据有两个要素/维度/列(行数与此问题无关):
[[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个标签。