gpt4 book ai didi

python - 将多类分类器转换为分层多类分类器

转载 作者:行者123 更新时间:2023-12-04 03:55:09 25 4
gpt4 key购买 nike

我正在使用电子商务数据集来预测产品类别。我使用产品描述和供应商代码作为特征,并预测产品类别。

from sklearn import preprocessing
from sklearn.feature_extraction.text import CountVectorizer
from sklearn import ensemble

df['joined_features'] = df['description'].astype(str) + ' ' + df['supplier'].astype(str)

# split the dataset into training and validation datasets
train_x, valid_x, train_y, valid_y = model_selection.train_test_split(df['joined_features'], df['category'])

# encode target variable
encoder = preprocessing.LabelEncoder()
train_y = encoder.fit_transform(train_y)
valid_y = encoder.fit_transform(valid_y)

# count vectorizer object
count_vect = CountVectorizer(analyzer='word')
count_vect.fit(df['joined_features'])

# transform training and validation data
xtrain_count = count_vect.transform(train_x)
xvalid_count = count_vect.transform(valid_x)

classifier = ensemble.RandomForestClassifier()
classifier.fit(xtrain_count, train_y)
predictions = classifier.predict(feature_vector_valid)

这个预测的准确率约为 90%。我现在想预测更多类别。这些类别是分层的。我预测的类别是主要类别。我想预测更多。

举个例子,我预测了服装。现在我想预测:服装 -> 鞋子

我尝试加入两个类别:df['category1'] + df['category2']并将它们预测为一个,但我得到了大约 2% 的准确率,这确实很低。

以分层方式制作分类器的正确方法是什么?

编辑:为了更好地理解,我编译了一些假数据:

sample

从第一行开始:类别 1 对应三星,类别 3 对应电子产品,类别 7 对应电视。

最佳答案

一个想法可能是使用所有 2 级类别构建模型,但将类别 1 的预测概率作为输入特征输入模型。

另一种想法是,您仅针对类别 1== 服装训练类别 2 的模型。理想情况下,您会根据 category1 的预测有条件地调用其他多类模型。显然,这会增加您必须完成的工作量,具体取决于类别 1 的数量。

关于python - 将多类分类器转换为分层多类分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64054792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com