首页 文章

使用sklearn RandomForestClassifier进行分类

提问于
浏览
0

我使用Scikit RandomForestClassifier对不 balancer 数据进行分类 . 目标类数据为“1”或“0”(99%的值为0) .

我想分配一个重量 . 我怎样才能做到这一点 .

我在文件中发现:

sample_weight:array-like,shape = [n_samples]或None样本权重 . 如果为None,则样本的权重相等 . 在每个节点中搜索拆分时,将忽略将创建具有净零或负权重的子节点的拆分 . 在分类的情况下,如果它们将导致在任一子节点中携带负权重的任何单个类,则也忽略分裂 .

我需要增加'1'的影响力

这是我应该这样做的方式:

s_weight = np.array([100 if i == 1 else 1 for i in y_train])

或者这样:

s_weight = y_train[:, 1:100].T.ravel()

.

clf.fit(X_train, y_train, sample_weight=s_weights)

由于我没有得到预期的结果,有人可以确认吗?

1 回答

  • 1

    技术上

    s_weight = np.array([100 if i == 1 else 1 for i in y_train])
    

    虽然RF中的加权不像例如SVM那样简单,但这是正确的 . 您必须交叉验证才能找到最佳权重(可能比 100 小得多) .

相关问题