Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:未知标签类型:';未知';。。。。y#u列值不';t与x_列值一致_Python_Scikit Learn_Natural Language Processing - Fatal编程技术网

Python 错误:未知标签类型:';未知';。。。。y#u列值不';t与x_列值一致

Python 错误:未知标签类型:';未知';。。。。y#u列值不';t与x_列值一致,python,scikit-learn,natural-language-processing,Python,Scikit Learn,Natural Language Processing,我有一系列的代码 from sklearn.feature_extraction.text import TfidfVectorizer tfidfconverter = TfidfVectorizer(max_features=900, min_df=5, max_df=0.7, stop_words='english') X = tfidfconverter.fit_transform(nlistRawDocs) 请注意顶部:最大功能为900 from sklearn.model_sele

我有一系列的代码

from sklearn.feature_extraction.text import TfidfVectorizer
tfidfconverter = TfidfVectorizer(max_features=900, min_df=5, max_df=0.7, stop_words='english')
X = tfidfconverter.fit_transform(nlistRawDocs)
请注意顶部:最大功能为900

from sklearn.model_selection import train_test_split
X_train_S, X_test, y_train_S, y_test = train_test_split(X, trainDF['label'], test_size=0.2, random_state=0)

chi2 = SelectKBest(score_func=chi2, k=500)
X_train = chi2.fit_transform(X_train_S, y_train_S)
这里k=500

我的想法是只使用tf idf结果中900个最佳功能中的前500个

现在的问题是y_列的值,我相信它与X_列中的元素数不一致

那我怎么做呢

当这是饲料

classifier = RandomForestClassifier(n_estimators=1000, random_state=0)  
classifier.fit(X_train, y_train_S)  
它返回一个错误:

未知标签类型:“未知”


我知道X_train和y_train与其编号不一致,只是我不知道如何获取y_train的更新值?

将X_train的数据通过SelectKBest将列数从900减少到500,但不会影响数据中的行数,因此,它不应该导致y_列和X_列中元素数量不匹配的问题


您看到的错误很可能是由以下原因引起的。

您能回答问题并用代码块(“{}”按钮)格式化代码吗?这将使你的问题更具可读性。当你
classifier.fit(X\u train,y\u train\S)时会发生什么
它返回一个错误:未知标签类型:“未知”……我相信这是X\u train与y\u train的目标标签编号不对应的结果。唯一的问题是,在执行selectkbest后,如何获取y\u train的更新值打印
y\u train\S中的示例
。它有什么样的值?我发现了问题,TF-IDF后的X_列值是(1598900)选择K后的X_列值变成(1598500)现在问题是如何使X_列值变成这样(1598500),第二个值应取决于SelectKbest的K值这是输入到rainforest后的新错误模型的特征数必须与输入匹配。模型n_特征是500,输入n_特征是900,但我尝试这样做n特征=500,X_train.重塑(1598,n特征),但仍然不起作用如果您首先使用TF-IDF,然后在训练模型之前选择K测试,您需要在任何新数据的管道中遵循这个确切的过程。例如,
X\u 900d\u vectors=tfidfconverter.transform(新文本)
,然后
X\u 500d\u vectors=chi2.transform(X\u 900d\u vectors)
。最后,
predicts=classifier.predict(X_500d_vectors)
实际上它遵循tfidf然后选择kbest的过程,但我的问题是目标标签如何根据示例X_500d_vectors=chi2获得更新的标签。转换(X_900d_vectors),我将如何提取此X_500d_vectors的标签,我可以把它分配给y_train变量