【发布时间】:2020-10-16 05:52:08
【问题描述】:
我正在使用sklearn.tree.DecisionTreeClassifier 来训练三类分类问题。
3个类的记录数如下:
A: 122038
B: 43626
C: 6678
当我训练分类器模型时,它无法学习类 - C。虽然效率是 65-70%,但它完全忽略了 C 类。
后来我知道了class_weight参数,但我不知道如何在多类设置中使用它。
这是我的代码:(我使用了balanced,但准确度更差)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
clf = tree.DecisionTreeClassifier(criterion="gini", max_depth=3, random_state=1,class_weight='balanced')
clf = clf.fit(X_train,y_train)
y_pred = clf.predict(X_test)
如何使用与类分布成比例的权重。
其次,有没有更好的方法来解决这个不平衡类问题以提高准确性?
【问题讨论】:
标签: python machine-learning scikit-learn decision-tree