try out django
[mlpccg-meta.git] / mlpccg / Clustering.py
index e1fc959..e1910fd 100644 (file)
@@ -3,7 +3,8 @@ from sklearn.feature_extraction import DictVectorizer
 from collections import defaultdict
 import csv
 
-import mlpccg
+from mlpccg.CardDb import CARDDB
+from mlpccg.DeckList import DeckList
 
 class Clustering:
     def __init__(self, records):
@@ -13,15 +14,15 @@ class Clustering:
         self.features_alt = []
         self.placements = {}
         self.clusters = defaultdict(list)
-        self.all_ids = mlpccg.CardDb.CARDDB._by_id.keys()
+        self.all_ids = CARDDB._by_id.keys()
 
         for record in self.records.all():
-            if record['Decklist']:
-                decklist = mlpccg.DeckList(name=record['Name'], url=record['Decklist'])
+            if record['decklist_url']:
+                decklist = DeckList(name=record['decklist_name'], url=record['decklist_url'])
                 self.features += [self.extract_features(decklist)]
                 self.features_alt += [self.extract_features_alt(decklist)]
                 self.decks += [decklist]
-                self.placements[decklist] = int(record['Placement'])
+                self.placements[decklist] = int(record['placement'])
 
         self.vectorizer = DictVectorizer()
         X = self.vectorizer.fit_transform(self.features).toarray()
@@ -88,10 +89,3 @@ class Clustering:
             ranking += [(stats['avg'], stats['label'])]
 
         return ranking
-
-if __name__ == '__main__':
-    tournament_records = mlpccg.TournamentRecords()
-    clustering = Clustering(tournament_records)
-
-    for placement_avg, cluster_label in clustering.ranking():
-        print '%.1f - %s' % (placement_avg, '; '.join(list(set(map(lambda x: x.name, clustering.clusters[cluster_label])))))