scikit学习的火车测试拆分,导致功能在火车数据中仅具有唯一值

时间:2019-01-24 11:46:00

标签: pandas scikit-learn linear-regression train-test-split

我正在尝试训练多元线性回归模型。我有一个名为“ main”的数据集。此数据集中几乎没有分类变量。我对分类变量进行了虚拟化。假设在实体模型化之后获得的列是A,B,C,D等。现在,当我尝试对该主数据集运行火车测试拆分时,由此获得的火车数据集在这些列之一中仅具有值0。我该如何克服这个问题。

我正在使用的代码是:

用于火车测试拆分:

from sklearn.model_selection import train_test_split

np.random.seed(0)
df_train, df_test = train_test_split(main, train_size = 0.7, test_size = 0.3, random_state = 100)

运行以下代码时:

main.columns[main.nunique() == 1]

结果是:Index([], dtype='object')

运行下面的火车数据代码时:

 df_train.columns[df_train.nunique() == 1]

结果是:Index(['A', 'D', 'S'], dtype='object')

我希望生成的训练集包含其中包含所有值组合的要素。但是,这种分裂在某些功能上只给了我一个价值

编辑:我检查了这些列中的唯一值,并且这些列高度不平衡,对于肯定的情况仅存在一个值。我尝试分层,并且至少需要租用两排正面课程。对于许多列来说就是这种情况。因此,我无法在培训数据集中单独包含此columnns,因为它将需要为所有列编写代码。我希望这是自动完成的。

1 个答案:

答案 0 :(得分:0)

您是否尝试过更改random_state的值?