from collections import defaultdict
import csv
-import mlpccg
+from mlpccg.CardDb import CARDDB
+from mlpccg.DeckList import DeckList
class Clustering:
def __init__(self, records):
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()
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])))))