具有分类变量的随机森林分类器的训练/测试格式



更新:如何为多个类别设置scikit随机森林分类器的训练/测试df?如何预测?

我的

训练数据集有一个包含 4 个类的分类结果列,我想预测这四个类中的哪一个最有可能用于我的测试数据。查看其他问题,我尝试使用 pandas get_dummies将四个新列编码到原始 df 中以代替原始结果列,但不确定如何向分类器指示这四列是类别,所以我使用了 y = df_raw['Outcomes'].values .

然后,我将训练集拆分为 80/20,并使用以下x_train、x_valid 和 y_train调用 fit(),y_valid:

def split_vals(a,n): return a[:n].copy(), a[n:].copy() 
n_valid = 10000 
n_trn = len(df_raw_dumtrain)-n_valid
raw_train, raw_valid = split_vals(df_raw_dumtrain, n_trn)
X_train, X_valid = split_vals(df_raw_dumtrain, n_trn)
y_train, y_valid = split_vals(df_raw_dumtrain, n_trn)
random_forest = RandomForestClassifier(n_estimators=10)
random_forest.fit(X_train, y_train)
Y_prediction = random_forest.predict(X_train)

我尝试运行 fit():

test_pred = random_forest.predict(df_test)

但是我得到一个错误:

值错误:模型的特征数必须与输入匹配。 模型 n_features 为 27,输入n_features为 28

我应该如何配置我的测试集?

您必须从测试数据中删除目标变量,然后将数据帧的剩余列作为预测函数的输入。您将能够解决要素数量不匹配的问题。

试试这个!

random_forest.predict(df_test.drop('Outcomes',axis=1))

注意:您不必为使用随机森林或任何基于决策树的模型创建目标变量的虚拟变量。

相关内容

  • 没有找到相关文章

最新更新