2017-06-15 22 views
-1

我正在开展一项任务,在该任务中,我必须应用机器学习,根据用户的行为和背景对用户进行集群。虽然我拥有的一些属性是数字,但其中大多数属于分类。如何使用分类属性作为聚类算法的输入?

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

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

如果不是,如何将分类属性转换为数字属性?

+0

[LightGBM从Microsoft(https://lightgbm.readthedocs.io/en/latest/Python-intro.html#specific-feature-names-and-categorical-features)支持类别特征,因为它是。或者,您可以通过单编码,二值化等技术将其转换为数字。 –

回答

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