使用了 SequentialFeatureSelector 但没有提高模型精度

Posted

技术标签:

【中文标题】使用了 SequentialFeatureSelector 但没有提高模型精度【英文标题】:Used SequentialFeatureSelector but does not improve the model accuracy 【发布时间】:2019-06-22 17:53:42 【问题描述】:

我正在选择用于构建客户流失预测模型的特征。使用 RandomForestClassifier,我得到了 0.9517 的准确度,它显示了 16 个选择作为其中一部分的特征。

但是,如果我使用 RandomForestClassifier 分别使用相同的 16 个特征列表拟合模型,它显示的准确度得分为 0.8714,为什么尽管我使用了由 SequentialFeatureSelector 选择的相同特征列表,但准确度得分却存在巨大差异?

[2019-01-28 17:51:16] 特点:16/16——得分: 0.9517879681082387[Parallel(n_jobs=1)]:完成 1 出 1 |已用时间:3.6s 剩余时间:0.0s

rand_forest = RandomForestClassifier(bootstrap=True, 
                class_weight=None, criterion='gini',
                max_depth=None, max_features='auto', 
                max_leaf_nodes=None,
                min_impurity_decrease=0.0, min_impurity_split=None,
                min_samples_leaf=1, min_samples_split=2,
                min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=1,
                oob_score=False, random_state=None, verbose=0,
                warm_start=False)

SequentialFeatureSelector(clone_estimator=True, cv=0,
             estimator=rand_forest,
             floating=False, forward=True, k_features=16, n_jobs=1,
             pre_dispatch='2*n_jobs', scoring='accuracy', verbose=2)

xtr, xtst, ytr, ytst = train_test_split(x, y, random_state=5, test_size=0.2)

rfst = RandomForestClassifier(n_estimators=100)

rfstmodel = rfst.fit(xtr, ytr)

rfstmodel.score(xtst, ytst)

>>> 0.8714975845410629

【问题讨论】:

【参考方案1】:

随机森林分类器不只是随机化特征,它们还会随机化这些特征的分割,所以即使你的特征保持不变,你的特征分割每次都是随机生成的,这可能会引入一些差异该模型。对于平均方差更小的更正则化的模型,我推荐Gradient Boosted Model,或者更好的是XGBoost。

随机森林为模型增加了额外的随机性,同时增长 树。而不是搜索最重要的特征,而 分裂一个节点,它在随机数中搜索最好的特征 特征的子集。这导致了广泛的多样性,通常 产生更好的模型。

因此,在随机森林中,只有特征的随机子集是 分割节点的算法考虑了这一点。 你 甚至可以通过额外使用随机数使树更加随机 每个特征的阈值,而不是寻找最好的 可能的阈值(就像正常的决策树一样)。

来源:https://towardsdatascience.com/the-random-forest-algorithm-d457d499ffcd

【讨论】:

以上是关于使用了 SequentialFeatureSelector 但没有提高模型精度的主要内容,如果未能解决你的问题,请参考以下文章

Vue 测试工具。 .vue 文件中使用了模拟 vuex,但 .ts 文件中使用了原始 vuex

GridSearchCV 真的使用了 StratifiedKFold 吗?

iOS 检测使用了哪个摄像头

Spring boot 使用了 thymeleaf模板后,再配置jsp就不好用了,难道使用了thymeleaf 不能用jsp了?

你们在使用sharepoint 2010吗? 在使用过程中,都使用了哪些功能?达到了啥效果?

卸载了macports,不能再使用自制软件了