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