2017-06-15 56 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