diff --git a/similarity.ipynb b/similarity.ipynb index 2ed5af1fe39cc012524336c102ff841e829e8076..502c9c1859245a0310e611c9e30f7a7a03cbda2a 100644 --- a/similarity.ipynb +++ b/similarity.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 11, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -118,18 +118,28 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "#count the number of cards in each deck and put in in a dictionary\n", "\n", "def count(decks_,decks2cards):\n", - "\n", + " \n", + " deck_1 = decks_[decks_['equivalent'] >= 0]\n", + " #print(deck_1)\n", + " mask = decks2cards['deckuid'].isin(decks_['uid'])\n", + " \n", + " \n", + " decks2cards_ = decks2cards.loc[mask]\n", + " \n", " decks_['count'] = 0\n", + " #print(decks2cards['deckuid'])\n", + " #print(decks_['uid'])\n", + " \n", + " #decks_['count'].loc[decks_['uid'] == decks2cards['deckuid'][1]] += d2c['amount']\n", "\n", - "\n", - " for j,d2c in decks2cards.iterrows():\n", + " for j,d2c in decks2cards_.iterrows():\n", "\n", "\n", " #decks_['count'].loc[decks_['uid'] == d2c['deckuid']] += d2c['amount']\n", @@ -140,12 +150,14 @@ "\n", "\n", " decks_\n", - " return(decks_)\n" + " return(decks_)\n", + "\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -165,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -202,8 +214,8 @@ " if count > best_count:\n", " best_count = count\n", " best_card = card['uid']\n", - " print(best_count)\n", - " print(best_card)\n", + " #print(best_count)\n", + " #print(best_card)\n", " \n", " return best_card\n", " \n", @@ -215,32 +227,268 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>uid</th>\n", + " <th>count</th>\n", + " <th>equivalent</th>\n", + " <th>similarity</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>1284241</td>\n", + " <td>71</td>\n", + " <td>6</td>\n", + " <td>0.084507</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1284242</td>\n", + " <td>72</td>\n", + " <td>2</td>\n", + " <td>0.027778</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>1284385</td>\n", + " <td>72</td>\n", + " <td>9</td>\n", + " <td>0.125000</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>1284246</td>\n", + " <td>72</td>\n", + " <td>2</td>\n", + " <td>0.027778</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>1284248</td>\n", + " <td>71</td>\n", + " <td>2</td>\n", + " <td>0.028169</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>51394</th>\n", + " <td>1457421</td>\n", + " <td>91</td>\n", + " <td>4</td>\n", + " <td>0.043956</td>\n", + " </tr>\n", + " <tr>\n", + " <th>51402</th>\n", + " <td>1457427</td>\n", + " <td>91</td>\n", + " <td>3</td>\n", + " <td>0.032967</td>\n", + " </tr>\n", + " <tr>\n", + " <th>51411</th>\n", + " <td>1457433</td>\n", + " <td>72</td>\n", + " <td>3</td>\n", + " <td>0.041667</td>\n", + " </tr>\n", + " <tr>\n", + " <th>51424</th>\n", + " <td>1457441</td>\n", + " <td>74</td>\n", + " <td>1</td>\n", + " <td>0.013514</td>\n", + " </tr>\n", + " <tr>\n", + " <th>51431</th>\n", + " <td>1457400</td>\n", + " <td>72</td>\n", + " <td>4</td>\n", + " <td>0.055556</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>14205 rows × 4 columns</p>\n", + "</div>" + ], + "text/plain": [ + " uid count equivalent similarity\n", + "0 1284241 71 6 0.084507\n", + "1 1284242 72 2 0.027778\n", + "2 1284385 72 9 0.125000\n", + "5 1284246 72 2 0.027778\n", + "7 1284248 71 2 0.028169\n", + "... ... ... ... ...\n", + "51394 1457421 91 4 0.043956\n", + "51402 1457427 91 3 0.032967\n", + "51411 1457433 72 3 0.041667\n", + "51424 1457441 74 1 0.013514\n", + "51431 1457400 72 4 0.055556\n", + "\n", + "[14205 rows x 4 columns]" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], "source": [ - "#get your best new card here\n", "\n", - "decks_ = create_decks_(decks)\n", + "def get_new_card(input):\n", + "\n", + " decks_ = create_decks_(decks)\n", "\n", - "decks_ = calc_equivalent(decks_,input,decks2cards)\n", + " decks_ = calc_equivalent(decks_,input,decks2cards)\n", "\n", - "decks_ = count(decks_,decks2cards)\n", + " decks_ = count(decks_,decks2cards)\n", "\n", - "decks_ = calc_similarity(decks_)\n", + " decks_ = calc_similarity(decks_)\n", "\n", "\n", "\n", - "largest_similarity = decks_.sort_values(by=[\"similarity\"],ascending=False)[\"similarity\"] [1]\n", - "most_similar_deck = decks_.sort_values(by=[\"similarity\"],ascending=False)[\"uid\"][1]\n", + " largest_similarity = decks_.sort_values(by=[\"similarity\"],ascending=False)[\"similarity\"] [1]\n", + " most_similar_deck = decks_.sort_values(by=[\"similarity\"],ascending=False)[\"uid\"][1]\n", "\n", - "print(most_similar_deck)\n", - "print(largest_similarity)\n", + " #print(most_similar_deck)\n", + " #print(largest_similarity)\n", "\n", - "best_deck = decks2cards.loc[decks2cards['deckuid'] == most_similar_deck]\n", + " best_deck = decks2cards.loc[decks2cards['deckuid'] == most_similar_deck]\n", "\n", "\n", "\n", "\n", - "new_card = find_best_card(best_deck,input)\n", - "print(new_card)\n", + " new_card = find_best_card(best_deck,input)\n", + " print(new_card)\n", + " \n", + " return new_card, most_similar_deck" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "21\n" + ] + } + ], + "source": [ + "##start main here\n", + "\n", + "number_of_cards = 2\n", + "\n", + "list_of_new_cards = []\n", + "best_deck = 0\n", + "\n", + "\n", + "\n", + "for i in range(number_of_cards):\n", + " \n", + " new_card, best_deck = get_new_card(input)\n", + " \n", + " df = pandas.DataFrame({\"uid\":[len(input['uid'] + 2)],\n", + " \"carduid\":[new_card],\n", + " \"amount\":[1]})\n", + "\n", + " input = pandas.concat([input,df])\n", + " \n", + " list_of_new_cards.append(new_card)\n", + " \n", + "\n", + " \n", + "print(list_of_new_cards)\n", + "print(best_deck)\n", + "\n", + "##end main here\n", "\n" ] }, @@ -272,6 +520,41 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 108,