【问题标题】:Hierarchical classification分级分类
【发布时间】:2020-02-19 20:41:01
【问题描述】:

我有一个多类问题。我想使用分层分类的 LCPN(每个父节点的本地分类器)方法来解决这个问题。因此,我手动将原始数据集划分为 2 个级别的层次结构。级别 1 有 4 个父类,每个父类都有子类。

我为 1 级分类(用于预测父类)建立了一个模型。根据第 1 级的预测,现在我想将分类为第 1 类的实例发送到第二个分类器,该分类器区分第 1 类的子标签。同样,我想对其他父类重复此过程出色地。我这样做主要是为了避免与 LCPN 相关的不一致问题。

这是我目前主要做的事情。

X = data_frame.drop([‘region’], axis = 1) # Features
y = data_frame[‘region’] # Labels

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

sm = SMOTE()
X_resampled, y_resampled = sm.fit_sample(X_train, y_train)

model = DecisionTreeClassifier().fit(X_resampled, y_resampled)
print(classification_report_imbalanced(y_test, predictions))

根据第 1 级的预测,我有点难以找到如何进一步进行第二级分类的方法。谁能建议我这样做的好方法。

提前致谢

【问题讨论】:

    标签: python machine-learning multiclass-classification


    【解决方案1】:

    我们刚刚发布了一个与 scikit-learn 兼容的新库,用于创建本地分层分类器。您可以使用lcppn = LocalClassifierPerParent(local_classifier=RandomForestClassifier()) 轻松为每个父节点创建一个本地分类器,然后使用lcppn.fit() 拟合您的模型并使用lcppn.predict() 进行预测。图书馆为您完成所有繁重的工作。 :)

    可以使用pip install hiclassconda install hiclass 轻松安装。可以在https://gitlab.com/dacs-hpi/hiclass 找到文档和更多示例。

    我希望这对您和未来的读者有用。

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 2013-03-09
      相关资源
      最近更新 更多