如何使用分类属性作为聚类算法的输入?

时间:2017-06-15 06:32:07

标签: python algorithm machine-learning

我正在开展一项任务,我必须根据他们的行为和背景应用机器学习来对用户进行聚类。虽然我拥有的一些属性是数字的,但大多数都属于绝对属性。

我读到的大多数机器学习算法只使用数字属性来处理数据。

是否存在将分类属性作为输入的聚类算法?

如果没有,如何将分类属性转换为数字属性?

1 个答案:

答案 0 :(得分:1)

您可以将分类要素转换为指标变量(也称为虚拟变量)。您也可以使用one hot encoder

实施例: 假设您的数据中有一个TYPE功能。它有三个类别。

data = pd.DataFrame(['A','B','C'],columns=['TYPE'])

data
Out[24]: 
  TYPE
0    A
1    B
2    C

#Use get_dummies on pandas dataframe. 

new_data = pd.get_dummies(data,columns=['TYPE'],prefix='TYPE_')

new_data
Out[26]: 
   TYPE__A  TYPE__B  TYPE__C
0      1.0      0.0      0.0
1      0.0      1.0      0.0
2      0.0      0.0      1.0