我是机器学习新手!
现在我正在做一些关于决策树/随机森林应用的问题。我正在尝试解决一个以数字和字符串(例如国家/地区名称)为特征的问题。现在,scikit-learn 库仅接受数字作为参数,但我想注入字符串以及它们携带大量知识。
我该如何处理这种情况,我可以通过某种机制将字符串转换为数字,例如Python中的散列。但我想知道在决策树问题中如何处理字符串的最佳实践。
1)如何添加“字符串”作为特征。
很少有算法可以原生处理任何形式的字符串,决策树不是其中之一。您必须将它们转换为决策树知道的东西(通常是数字或分类变量)。
如何将它们转换为特征:这很大程度上取决于字符串的性质。如果字符串是句子,你可以使用类似的东西词袋 http://en.wikipedia.org/wiki/Bag-of-words_model将每个单词映射到数字特征。有许多不同的策略来确定使用什么数值,但仅使用 0/1 表示不存在/存在通常是一个不错的基线。
对于国家/地区来说,这是没有意义的,因为你以错误的方式代表了你的特征。国家更类似于分类变量。只有 X 个国家,并且您必须具有 X 中的值(这可能不是严格绝对正确的,但这超出了重点)。 scikit-learn 不支持分类变量。您可以通过使用“伪造”它独热编码 http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html,但它的工作效果可能不如完全支持分类变量的库。
请注意,仅仅因为国家/地区可以表示为类别并不意味着它是处理它们的最佳方式。这在很大程度上取决于您的数据是什么以及您正在做什么。如果不了解所有细节,没有人可以为您解答。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)