-1

Je pratique des K-means en utilisant python. Je travaille avec un ensemble de données d'achat, et l'ensemble de données en entrée ressemble à ceci.Comment traiter les différentes échelles de valeurs pour chaque coordonnée dans l'algorithme K-Means?

en-têtes de table d'entrée:

  • [ID utilisateur]
  • [money_spent_on_clothes] int
  • [money_spent_on_food] int
  • [money_spent_on_shoes] int
  • [money_spent_on_Monday] int
  • [money_spent_on_Tuesday ] int
  • [money_spent_on_We dnesday] int
  • [money_spent_on_Thursday] int
  • [money_spent_on_Friday] int
  • [shopping_hours_am] int
  • [shopping_hours_pm] int

Je veux utiliser combien ils dépensent dans chaque catégorie, ce le jour où ils magasinent le plus, et le nombre d'heures qu'ils passent à magasiner au cours de la journée en tenant compte du regroupement des utilisateurs.

Il y a peu de divergences dans l'ensemble de données.

  • unités ne correspondent pas: $ par rapport à l'heure
  • types de fonctions sont mélangés. Les 3 premières caractéristiques concernent la catégorie, les 5 prochaines caractéristiques concernent le jour de la semaine et les 2 dernières caractéristiques sont le temps qu'elles passent pendant la journée (am vs. pm).

Je me demande si K-means peut être fait sur cet ensemble de données & fonctionnalités que je l'ai dit, et si cela peut être fait, quel genre de normalisation doit être appliqué dans l'ordre pour que cela fonctionne?

Merci d'avance!

+0

Normalement, la mise à l'échelle est effectuée colonne par colonne, il n'y a donc rien à craindre. Ou avez-vous quelque chose d'autre à l'esprit. Avez-vous essayé le StandardScaler de scikit-learn? –

+0

Merci. Je vais essayer Standardscaler. Je suis heureux de savoir que le fait d'avoir différents types de fonctionnalités comme ci-dessus n'est pas un problème tant qu'ils sont mis à l'échelle. –

Répondre

1

Vous pouvez utiliser Mahalanobis Distance et en raison de ses propriétés, il est facile à utiliser avec n'importe quel algorithme K-Means euclidien géré (l'utiliser comme une boîte noire).

+0

Merci! Je vais regarder dans :) –