【发布时间】:2020-06-24 16:14:21
【问题描述】:
我有一个项目要求根据大约 52 个特征和 2000 行数据对员工是否会离开公司进行二元分类。数据与 1200 neg 到 800 pos 有点平衡。我已经完成了广泛的 EDA 和数据清理。我选择从 sklearn、对数回归、SVM 和随机森林中尝试几种不同的模型。我从他们所有人那里得到了非常糟糕和相似的结果。这次运行我只使用了 52 个功能中的 15 个,但结果与我使用所有 52 个功能时的结果几乎相同。在 52 个特征中,有 6 个是分类的,我将其转换为虚拟对象(每个特征 3-6 个类别之间),3 个是我转换为 days-since-epoch 的日期时间。没有要填充的空值。
这是我最近使用随机森林运行的代码和混淆矩阵。
x_train, x_test, y_train, y_test = train_test_split(small_features, endreason, test_size=0.2, random_state=0)
RF = RandomForestClassifier(bootstrap = True,
max_features = 'sqrt',
random_state=0)
RF.fit(x_train, y_train)
RF.predict(x_test)
cm = confusion_matrix(y_test, rf_predictions)
plot_confusion_matrix(cm, classes = ['Negative', 'Positive'],
title = 'Confusion Matrix')
我可以采取哪些步骤来帮助更好地适应此模型?
【问题讨论】:
-
好像没有微调。您是否也尝试过一些更复杂的方法,例如 LightGBM 或 XGBoost?
-
@CeliusStingher -- 你会建议什么样的微调?我尝试设置一些超参数无济于事,但也许您可以提出一些建议。不,我还没有尝试过这两种方法,我现在就这样做!
标签: python machine-learning classification data-science random-forest