我正在为 scikit-learn 的随机森林分类器生成特征向量。特征向量表示9个蛋白质氨基酸残基的名称。有 20 个可能的残基名称。因此,我使用 20 个虚拟变量来表示一个残基名称,对于 9 个残基,我有 180 个虚拟变量。

例如,如果滑动窗口中的 9 个残基是: ARNDCQEGH(每个字母代表一个蛋白质残基的名称),我的特征向量将是:

"True\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tFalse\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\t
False\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tTrue\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\tFalse\n"

另外,我尝试使用 (1,0) 替换 (True,False)

在训练和测试 Scikit 的随机森林分类器模型后,我发现它完全不起作用。但是 Scikit 的随机森林可以与我的其他数值数据一起使用。

Scikit 的随机森林可以处理分类变量或虚拟变量吗?如果是这样,您能否提供一个示例来说明它是如何工作的。

这是我设置随机森林的方法:
clf=RandomForestClassifier (n_estimators=800, criterion='gini', n_jobs=12, max_depth=None, compute_importances=True, max_features='auto', min_samples_split=1,  random_state=None)

非常感谢!

最佳答案

使用编码为 0 和 1 的 bool 特征应该可以工作。如果即使您的森林中有大量决策树,预测准确性也很差,则可能是您的数据过于嘈杂,无法让学习算法不提取任何有趣的想法。

您是否尝试过拟合线性模型(例如 Logistic 回归)作为此数据的基线?

编辑 :实际上,对分类变量使用整数编码对于许多随机决策树模型(例如 scikit-learn 中的 RandomForest 和 ExtraTrees)往往效果很好。

关于python - python scikit-learn随机森林中如何使用虚拟变量表示分类数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15821751/

10-12 22:39