我正在为 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 特征应该可行。如果即使您的森林中有大量决策树,预测准确性也很差,这可能是因为您的数据过于嘈杂,以至于学习算法无法拾取任何有趣的想法。
您是否尝试过将线性模型(例如逻辑回归)拟合为该数据的基线?
编辑:在实践中,对分类变量使用整数编码往往适用于许多随机决策树模型(例如 scikit-learn 中的 RandomForest 和 ExtraTrees)。
关于python - 如何使用虚拟变量表示 python scikit-learn 随机森林中的分类数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821751/