决策树分类器根据其他列的值对值进行分类

数据挖掘 Python 分类 决策树 多标签分类
2022-02-10 23:18:55

我有多个标签的数据,例如

在此处输入图像描述

我的X集是从第二列到第三列,我想对第一列或最后一列进行分类,所以我将Y设为最后一列。

目标是,如果我对 Vios 进行分类,它会返回Car0,换句话说,它可以找到第一行的方式。

分类用例:

classify("poodle") #just pretend this is a working function

返回:宠物

我是如何尝试训练我的模型的:

from sklearn.feature_extraction.text import TfidfVectorizer
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 72)
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(X_train)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf3 = RandomForestClassifier().fit(X_train_tfidf, y_train)

我正在使用网络上某个地方的指南,它与它的工作方式有点相同,但最后我得到了返回:

ValueError: Found input variables with inconsistent numbers of samples: [5, 4156]

我马上就知道我做错了。如何训练模型以实现我的目标?我应该遵循的任何相关指南或技术我什至不知道在这种情况下使用向量的正确方法。

1个回答

有几件事: 不能完全复制问题,但如果你遵循这些步骤,你就不会暴露自己

TfidfVectorizer 是 CountVectorizer + TfidfTransformer,您将自己暴露在不必要的复杂性和潜在错误中

使用管道,不能强调这一点,这是一种将所有 sklearn 转换器打包在一起的紧凑方法,然后使用拟合、预测方法......

我建议你遵循类似的方法,或者在这里找到类似的问题