如何保存和绘制与测试集无关的ID功能?

时间:2018-10-08 11:48:39

标签: python machine-learning scikit-learn

我有一个数据集,其中包含许多列数据,这些数据列与确定特定销售机会是否会带来销售相关。还有一个前导列,其ID指示该行代表哪个机会。我选择通过简单地将其从数组的前面切片下来,从而将行从一键编码和特征分析中排除:

num_feature_columns = len(feature_extract.columns) - 1

X = feature_extract.values[:, 1:num_feature_columns]

y = feature_extract.values[:, num_feature_columns]
y = y.astype('int')

X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.5, test_size=0.5, random_state=0)

即X [0]将是仍包含ID信息的行,而X_train [0] / X_test [0]将仅具有与分类相关的列(其余)。

我的问题/问题是,在计算出结果之后,我想保留并绘制/说明这些ID,以便指出哪些销售机会最有可能被归类为。我当前的图形如下:

y_pred = model.predict(X_test)
plot_model_summary(y_test, y_pred, "LR_plot.png")

如何修改图摘要以至少包含其几个数据点的ID?我是否必须以某种方式在测试集中进行测试?还是有一种方法可以在使用事实后将其连接到使用原始功能集的数据点?

1 个答案:

答案 0 :(得分:1)

您可以将ID保留在X数组中,通过train_test_split携带它们,但随后不使用它们进行拟合和预测,例如:

model.fit(X_train[:, 1:], y)
model.predict(X_test[:, 1:])

然后所有ID仍位于X_trainX_test中,因此您的绘图功能可以使用它们。

相关问题