我严格按照scikit-learn的文档操作,试图拟合一个虚拟分类器。然而,运行时引发了一个值错误(Value Error)。这出乎意料,因为之前我使用相同的数据:X = vector_data(一个稀疏矩阵),y = vector_target(一个整数列表),并使用网格搜索交叉验证(grid search cv)进行拟合,没有出现这样的错误。
因此,这一定是引入train_test_split所导致的。
为什么我的代码中会出现这种情况,而文档中却没有?应该采取哪些预防措施呢?
X_train, X_test, y_train, y_test = train_test_split(vector_data, vector_target, random_state=0)clf = DummyClassifier(strategy='stratified',random_state=0)clf.fit(X_train, y_train)clf.score(X_test,y_test) DeprecationWarning: 在0.17版本中,将一维数组作为数据传递已被废弃,在0.19版本中将引发ValueError。请使用X.reshape(-1, 1)重塑你的数据,如果你的数据只有一个特征,或者使用X.reshape(1, -1)如果它包含一个样本。 DeprecationWarning)
回答:
首先,总是要仔细阅读警告/错误信息。
因此,可以尝试如下操作:
X_train, X_test, y_train, y_test = train_test_split(vector_data.reshape(-1, 1), vector_target, random_state=0)
我无法提供更多信息,只是尝试理解这段代码。