首页 > 解决方案 > sklearn 库的 train_test_split 函数存在问题

问题描述

from sklearn.utils import shuffle
dataset,labels = shuffle(dataset,labels)
print("Shuffling of dataset is completed")
print(" ")

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(tokenizer=lambda doc: doc, lowercase=False)
X = vectorizer.fit_transform([dataset])


from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,labels,test_size=0.1,stratify=labels)
print("Completing the splitting of data.")
print(" ")

这是我正在使用 sklearn 库构建的分类模型。

我收到函数train_test_split()的错误,其中错误状态:

ValueError:发现样本数量不一致的输入变量:[1, 88702]

我试图通过不同的方法来解决这个错误,比如改变 X 和 Y 的形状,但我仍然无法得到想要的结果。

标签: pythonscikit-learnclassification

解决方案


此错误意味着 X 向量的长度不等于标签向量的长度。如果您打印 X 向量的形状,我希望它的长度为 1。

好像是线

X = vectorizer.fit_transform([dataset])

应该改为

X = vectorizer.fit_transform(dataset)

根据此处找到的 sklearn.feature_extraction.text 的文档


推荐阅读