X-Git-Url: https://git.yukkurigames.com/?p=mlpccg-meta.git;a=blobdiff_plain;f=mlpccg%2FClustering.py;h=e1910fdb5a75bd71a22e9e2a0982423bb74c898a;hp=e1fc9595146ff6b538500570cff75eec1e9111eb;hb=0f08a0d1ebcd8d825a7df448221a7eb23600bba5;hpb=8fa58d46994cbd5d4f70204d2b1b57ba4cc4a516 diff --git a/mlpccg/Clustering.py b/mlpccg/Clustering.py index e1fc959..e1910fd 100644 --- a/mlpccg/Clustering.py +++ b/mlpccg/Clustering.py @@ -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])))))