2013-01-14 6 views
0

J'ai des données qui ont des champs discrets, ou pour le dire d'une autre manière, des valeurs énumérées. Par exemple, dans mes données, j'ai un champ comme "deviceType" qui peut prendre des valeurs comme "Handheld" et "Desktop". D'autres attributs de chaîne peuvent être des URL. Cependant, ils manquent intrinsèquement de notion de distance et ne peuvent donc pas être «vectorisés». En outre, certains d'entre eux sont extrêmement importants et significatifs. Comment puis-je les intégrer dans la procédure de clustering?Clustering et valeurs discrètes

Une solution que j'ai pensé est de les diviser en nouveaux champs booléens (dimensions). Y a-t-il un moyen de représenter cela dans Mahout?

Quelles autres options ai-je?

Répondre

0

Une autre option pourrait être d'avoir votre propre programme générant des vecteurs épars, qui peuvent être donnés en entrée à mahout pour le clustering. par exemple, entrée:

www.domain1.com/page1 
www.domain1.com/page2 
www.domain2.com/page1 

nous pouvons diviser ci-dessus urls en hôte, le chemin, les paramètres comme celui-ci

www.domain1.com page1 
www.domain1.com page2 
www.domain2.com page1 

nous pouvons avoir dictionnaire avec chaîne, paire entière valeur clé comme ci-dessous

(www.domain1.com, 1) 
(page1, 2) 
(page2, 3) 
(www.domain2.com, 4) 

et les vecteurs clairsemés comme ci-dessous

{1:1.0, 2:1.0} 
{1:1.0, 3:1.0} 
{4:1.0, 2:1.0} 

Ce qui précède peut être donné en entrée à mahout pour le clustering.

Questions connexes