Scikit Learn:预测分类特征

时间:2014-11-14 21:15:44

标签: machine-learning scikit-learn classification categorical-data

我正在试图找出预测scikit-learn中分类特征的最佳通用方法,并希望得到一些建议。特别是,我可以做一个决策树,它会很好地处理分类数据,但我想尝试一些其他的多分类模型。我可以使用单热方法将分类特征转换为许多二进制特征。

训练集示例:

Age| Color  | City     | Freq
35 |'Orange'|'Seattle' | '<30'
55 |'Black' |'Portland'| '>30'
75 |'Red'   |'Seattle' | 'Never'

可以轻松更改为:

Age| Color |City | Freq
35 | 1 0 0 | 1 0 | 1 0 0
55 | 0 1 0 | 0 1 | 0 1 0
75 | 0 0 1 | 1 0 | 0 0 1

我可以将其拆分为数据目标对:

X= Age| Color |City
   35 | 1 0 0 | 1 0
   55 | 0 1 0 | 0 1
   75 | 0 0 1 | 1 0

y= Freq
   1 0 0
   0 1 0
   0 0 1

然后我可以使用各种SK-Learn分类模型来处理这个问题,但我不清楚这三个“Freq&#39;功能被理解为相互排斥。因此我的问题是:

除了决策树之外,是否可以使用广义分类例程来预测分类特征?

如何确保一组二进制功能保持互斥?

此外,是否可以将结果显示在一个智能地连接三个二进制特征的度量中?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。只是不要'一热'你的输出向量。将其转换为数字。

与Freq:

一样
'<30' = 0
'>30' = 1
'Never' = 2

如果你这样做,任何回归算法都应该有效。然后,您可以为每个输出类设置阈值。

另一个选择是拥有3个二进制分类模型,每个模型都为每个类进行训练。

另外,看看Softmax回归。