{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Building a fashion recommender (III): Users' analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__The explanation of this implementation can be found at: http://www.rosariomgomez.me/__
\n", "\n", "__Index__
\n", "1. [Build the pandas dataframes](#1.-Build-the-dataframes)
\n", "2. [Looking for users' similarities](#2.-Looking-for-users'-similarities)
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "1. Build the dataframes" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "from create_features import create_user_features" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "def get_db():\n", " from pymongo import MongoClient\n", " client = MongoClient('server', port) #server, port\n", " db = client.database_name #database name\n", " db.authenticate(\"user\", \"pwd\")\n", " return db" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "db = get_db()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "#retrieve all users from the DB and build the feature vector\n", "all_users = db.user.find()\n", "list_users = [create_user_features(user) for user in all_users]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "#build users' pandas dataframe\n", "users = pd.DataFrame(list_users)\n", "users = users.rename(columns = {'_id':'user_id'}) #to be in line with the ratings names\n", "users.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
user_idagecountryday_offdress_sizefashionistalike_styles_preflike_styles_pref_bohemian chiclike_styles_pref_casual chiclike_styles_pref_classiclike_styles_pref_edgylike_styles_pref_preppylike_styles_pref_romanticnolike_styles_prefnolike_styles_pref_bohemian chicnolike_styles_pref_casual chicnolike_styles_pref_classicnolike_styles_pref_edgynolike_styles_pref_preppynolike_styles_pref_romantic
0 53962dfa3191490008a690df 55 US sport 10 nolike [classic, casual chic, preppy] 0 1 1 0 1 0 [] 0 0 0 0 0 0...
1 53968e993d4e0c0007a2546f 50 US family 6 nolike [] 0 0 0 0 0 0 [edgy] 0 0 0 1 0 0...
2 53971683b7d85a0008b1bbe2 30 ES family 8 nolike [romantic, casual chic] 0 1 0 0 0 1 [edgy] 0 0 0 1 0 0...
3 539851a17f6ba70007ba8bdb 30 ES party 10 nolike [romantic, casual chic, preppy] 0 1 0 0 1 1 [edgy] 0 0 0 1 0 0...
4 539770c4a9a4570008c28a9b 45 ES family 10 ok [classic, casual chic, preppy] 0 1 1 0 1 0 [bohemian chic, edgy] 1 0 0 1 0 0...
\n", "

5 rows \u00d7 27 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ " user_id age country day_off dress_size fashionista \\\n", "0 53962dfa3191490008a690df 55 US sport 10 nolike \n", "1 53968e993d4e0c0007a2546f 50 US family 6 nolike \n", "2 53971683b7d85a0008b1bbe2 30 ES family 8 nolike \n", "3 539851a17f6ba70007ba8bdb 30 ES party 10 nolike \n", "4 539770c4a9a4570008c28a9b 45 ES family 10 ok \n", "\n", " like_styles_pref like_styles_pref_bohemian chic \\\n", "0 [classic, casual chic, preppy] 0 \n", "1 [] 0 \n", "2 [romantic, casual chic] 0 \n", "3 [romantic, casual chic, preppy] 0 \n", "4 [classic, casual chic, preppy] 0 \n", "\n", " like_styles_pref_casual chic like_styles_pref_classic \\\n", "0 1 1 \n", "1 0 0 \n", "2 1 0 \n", "3 1 0 \n", "4 1 1 \n", "\n", " like_styles_pref_edgy like_styles_pref_preppy like_styles_pref_romantic \\\n", "0 0 1 0 \n", "1 0 0 0 \n", "2 0 0 1 \n", "3 0 1 1 \n", "4 0 1 0 \n", "\n", " nolike_styles_pref nolike_styles_pref_bohemian chic \\\n", "0 [] 0 \n", "1 [edgy] 0 \n", "2 [edgy] 0 \n", "3 [edgy] 0 \n", "4 [bohemian chic, edgy] 1 \n", "\n", " nolike_styles_pref_casual chic nolike_styles_pref_classic \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " nolike_styles_pref_edgy nolike_styles_pref_preppy \\\n", "0 0 0 \n", "1 1 0 \n", "2 1 0 \n", "3 1 0 \n", "4 1 0 \n", "\n", " nolike_styles_pref_romantic \n", "0 0 ... \n", "1 0 ... \n", "2 0 ... \n", "3 0 ... \n", "4 0 ... \n", "\n", "[5 rows x 27 columns]" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "#retrieve all ratings from the DB\n", "rated_outfits = db.ratings.find()\n", "list_ratings = [rate for rate in rated_outfits]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "#ratings dataframe\n", "cols = ['user_id', 'pin_id', 'rating']\n", "ratings = pd.DataFrame(list_ratings, columns=cols)\n", "ratings.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
user_idpin_idrating
0 538677f561e01f0be9e838f7 537933bb61e01f10f111886f 0
1 538677f561e01f0be9e838f7 537933a161e01f10f11187e6 0
2 538677f561e01f0be9e838f7 53793d6d61e01f10f111a725 2
3 538677f561e01f0be9e838f7 537933be61e01f10f111887f 2
4 538677f561e01f0be9e838f7 53793d8861e01f10f111a741 0
\n", "

5 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ " user_id pin_id rating\n", "0 538677f561e01f0be9e838f7 537933bb61e01f10f111886f 0\n", "1 538677f561e01f0be9e838f7 537933a161e01f10f11187e6 0\n", "2 538677f561e01f0be9e838f7 53793d6d61e01f10f111a725 2\n", "3 538677f561e01f0be9e838f7 537933be61e01f10f111887f 2\n", "4 538677f561e01f0be9e838f7 53793d8861e01f10f111a741 0\n", "\n", "[5 rows x 3 columns]" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "#merge the users and ratings dataframes\n", "fashion_users = pd.merge(ratings, users)\n", "fashion_users.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
user_idpin_idratingagecountryday_offdress_sizefashionistalike_styles_preflike_styles_pref_bohemian chiclike_styles_pref_casual chiclike_styles_pref_classiclike_styles_pref_edgylike_styles_pref_preppylike_styles_pref_romanticnolike_styles_prefnolike_styles_pref_bohemian chicnolike_styles_pref_casual chicnolike_styles_pref_classicnolike_styles_pref_edgy
0 538677f561e01f0be9e838f7 537933bb61e01f10f111886f 0 30 US sport 8 love [classic, casual chic, preppy] 0 1 1 0 1 0 [edgy] 0 0 0 1...
1 538677f561e01f0be9e838f7 537933a161e01f10f11187e6 0 30 US sport 8 love [classic, casual chic, preppy] 0 1 1 0 1 0 [edgy] 0 0 0 1...
2 538677f561e01f0be9e838f7 53793d6d61e01f10f111a725 2 30 US sport 8 love [classic, casual chic, preppy] 0 1 1 0 1 0 [edgy] 0 0 0 1...
3 538677f561e01f0be9e838f7 537933be61e01f10f111887f 2 30 US sport 8 love [classic, casual chic, preppy] 0 1 1 0 1 0 [edgy] 0 0 0 1...
4 538677f561e01f0be9e838f7 53793d8861e01f10f111a741 0 30 US sport 8 love [classic, casual chic, preppy] 0 1 1 0 1 0 [edgy] 0 0 0 1...
\n", "

5 rows \u00d7 29 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ " user_id pin_id rating age country \\\n", "0 538677f561e01f0be9e838f7 537933bb61e01f10f111886f 0 30 US \n", "1 538677f561e01f0be9e838f7 537933a161e01f10f11187e6 0 30 US \n", "2 538677f561e01f0be9e838f7 53793d6d61e01f10f111a725 2 30 US \n", "3 538677f561e01f0be9e838f7 537933be61e01f10f111887f 2 30 US \n", "4 538677f561e01f0be9e838f7 53793d8861e01f10f111a741 0 30 US \n", "\n", " day_off dress_size fashionista like_styles_pref \\\n", "0 sport 8 love [classic, casual chic, preppy] \n", "1 sport 8 love [classic, casual chic, preppy] \n", "2 sport 8 love [classic, casual chic, preppy] \n", "3 sport 8 love [classic, casual chic, preppy] \n", "4 sport 8 love [classic, casual chic, preppy] \n", "\n", " like_styles_pref_bohemian chic like_styles_pref_casual chic \\\n", "0 0 1 \n", "1 0 1 \n", "2 0 1 \n", "3 0 1 \n", "4 0 1 \n", "\n", " like_styles_pref_classic like_styles_pref_edgy like_styles_pref_preppy \\\n", "0 1 0 1 \n", "1 1 0 1 \n", "2 1 0 1 \n", "3 1 0 1 \n", "4 1 0 1 \n", "\n", " like_styles_pref_romantic nolike_styles_pref \\\n", "0 0 [edgy] \n", "1 0 [edgy] \n", "2 0 [edgy] \n", "3 0 [edgy] \n", "4 0 [edgy] \n", "\n", " nolike_styles_pref_bohemian chic nolike_styles_pref_casual chic \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " nolike_styles_pref_classic nolike_styles_pref_edgy \n", "0 0 1 ... \n", "1 0 1 ... \n", "2 0 1 ... \n", "3 0 1 ... \n", "4 0 1 ... \n", "\n", "[5 rows x 29 columns]" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2. Looking for users' similarities" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Rating values can be: 0 (don't like), 1 (ok) or 2 (like)" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.1. Ratings by user" ] }, { "cell_type": "code", "collapsed": false, "input": [ "aux_pt = fashion_users.pivot_table('rating', rows='pin_id', cols='user_id')\n", "matrix = aux_pt.ix[410:445, :]\n", "fig = plt.figure(1, figsize=(8,8))\n", "plt.imshow(matrix, interpolation='nearest')\n", "plt.ylabel(\"Pin id\")\n", "plt.xlabel(\"User id\")\n", "plt.colorbar()\n", "plt.show()\n", "plt.show()\n", "#fig.savefig('matrix.png', dpi = (200))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nmaK2tjYFg0FJUjAYVFtbm50hAADcrtOGV5zYOrHoggsuUFNTkz777DPNnj1b27Zt6/W9YRgyDMPO\nEAAAbsfs3P5deuml+va3v6333ntPwWBQR44c0ZgxY3T48GGNHj26j60iX/k548sXACAeIpGIIpGI\n02G4nm1JtL29XUlJSRoxYoT+8pe/6Ne//rVWrVqlkpISbdy4UStXrtTGjRu1YMGCPnoI2RUaAGAA\noVBIoVCo531VldnbgEzw8C0utiXRw4cPq6ysTN3d3eru7tadd96pWbNmKT8/X7fffruefvppZWRk\n6KWXXrIrBAAAbGVbEp02bZp279591ueXX365tm7datduAQBe4+FKlLVzAQCwiGX/AADO8vBTXEii\nAABnefgWFyMWi7luWetT946uGnT7WCxsWyyJLmzyPt6w+36dAAwBwzBkR7owDEMybPj/RsyeeM9E\nJQoAcJaH//ZmYhEAABaRRAEAsIgkCgCARSRRAAAsIokCAGARSRQAkBDq6uqUlZWliRMn6vHHHz/r\n+xdffFG5ubnKycnRjBkztGfPngH75BYXAIDD7F+yKBqNatmyZdq6datSU1N11VVXqaSkRNnZ2T1t\nJkyYoLfffluXXnqp6urq9P3vf187d+7st18qUQCA7zU0NCgzM1MZGRkKBAIqLS3V5s2be7W55ppr\ndOmll0qSCgsLdejQoQH7JYkCABzWZcOrt9bWVqWnp/e8T0tLU2tra58RPf3005o3b96AkTOcCwDw\nPcPEEqbbtm3TM888ox07dgzY1rVJdJXMPEU9bFcYCS8ae8DpEHzLMMKm2rtxjWizaytL7lxfmTWi\nnTYU10TfkbS9z29TU1PV0tLS876lpUVpaWlntduzZ4+WLFmiuro6XXbZZQPu1bVJFACQKIbiqdzX\nfPk6rbrXtwUFBTpw4ICam5s1duxYbdq0SbW1tb3aHDx4ULfeeqteeOEFZWZmDmqvJFEAgO8lJSWp\npqZGs2fPVjQaVUVFhbKzs7VhwwZJUmVlpR555BF9+umnWrp0qSQpEAiooaGh/35tjxwAgH7F56nc\nc+fO1dy5c3t9VllZ2fPzU089paeeespUn8zOBQDAIipRAIDD4lOJ2oFKFAAAi6hEAQAOG4rZuc4g\niQIAHMZwLgAACYdKFADgMO8O51KJAgBgkRGLuW8RSMMw5MKwbPewHjTV/lGttikSxIPZ8z3MeMxU\n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\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.1. Ratings by age group" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#ratings by users based on their age group (seems to be a tendency to lower rates amongst the central group ages)\n", "pt_age = fashion_users.pivot_table(values='rating', rows=['age'], aggfunc=[np.mean])\n", "pt_age.plot(kind='bar', color='orange')\n", "plt.title('Mean rating by age group')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n22+/lRfj6XneVMXHx7fotLaUkpKifD5gwABRX1/vsi0bX4faoH498nXou+joaLFs2TKxdOlS0atX\nL5frsH///tK6PD5VkKpevXphyZIlmDJlivKc8jNnzuCdd97BnXfeKbnuhnPnzuGNN96AEAIXLlxw\nOU0QeIIPX4faoH498nXou5///OeoqakBADz55JM4d+4cunfvjjNnziAlJUVal18um2zcuBEVFRV4\n4IEHYDQaYTQaYbFYcP78efzP//yP7DwAP/zAL168qPzAAeD06dNSf+AN/Pk6lH2jaYz69dhwHdbU\n1DT5d5icnCy57gbq1+GCBQswf/585ePYsWNYtmwZSkpKsH79enlh0u7z++jIkSPiz3/+s6iurnb5\n+rZt2yQVNdXQWFNT4/L1wsJCSUWu9u7dKw4fPiyEEGL37t3i9ddfFzt37pRc5apxY1FREcnGmz3+\n+OOyEzyaPHmy7ASPPv30U7F06VKxfft22SlCCCHuuece5fNVq1aJ5ORksWDBAjF06FCxcOFCaV1+\n+SKdFStWYOXKlUhMTMSBAwewfPlyjB49GgCQmpoq9Q9CNKDeOG/ePBQVFaGurg7Dhg3Dp59+ip/9\n7Gf485//jKysLPzHf/yH1D5/aczKyoLBYHBZgti9ezcefPBBGAwGbN68WWId/T4ASEtLw/79+wEA\nb731FlauXIlHHnkEO3bswEMPPeTyoKsMjW+vgwYNwrZt29CtWzdcunQJ6enpOHz4sJwwab82fNC3\nb1/l3uy3334r7r77bvH73/9eCOH6AI1MNzcOHDiQVGNiYqK4fv26uHTpkujcubNwOBxCCCFqa2ul\nPgjTmD80pqSkiEmTJondu3cLm80mioqKRI8ePYTNZhM2m012nse+oqIi2XlCCNfbw8CBA8V3330n\nhBDi4sWLom/fvrKyFP379xfnz58XFRUVTW67zb1pVFvwywcshRDo3LkzAMBsNmPPnj0YM2YMysrK\nyDwIc3OjzWYj1XjbbbchODgYwcHBuOuuu9C1a1cAQIcOHRAUROOhEH9o/OKLL7B8+XK8+uqreP31\n15Gamor27dvjgQcekJ0GgH4fcOMvdlVWVkIIgbq6OnTr1g0A0KlTJwQHyx9R1dXVGDhwIIAbb3d9\n+vRp9OzZU3kQUxb510wLdO/eHQcPHlQetOrcuTM++eQTTJ06FSUlJZLrbqDeePvtt6O2thYdO3bE\nl19+qXzd4XCQGYz+0NiuXTs888wzGD9+PJ5++ml0794dTqdTdpaCeh9Adzg2KC0tdfv1du3a4aOP\nPmrbmEb8cs375MmTCAkJQY8ePVy+LoTAvn37cN9990kq+wH1xitXrqB9+/ZNvl5RUYHTp0+jf//+\nEqpc+UPjzT755BN89tlnWLhwoewUt6j3NVZbW4uzZ8+id+/eslNI8svhzRhjgY7G/z0ZY4zdEh7e\njDHmh3h4M8aYH+LhzRhjfoiHN2OM+SEe3iwgPPLIIxg0aBD69euHt956CwCwZs0a9OnTB+np6Zg2\nbRp+9atfAbjxTnxjx45FWloa0tLS8Nlnn8lMZ8wtfqogCwhVVVUwGo24fPky0tLSsH37dtx77704\ncOAAOnfujAcffBApKSlYsWIFJk2ahBkzZuDee+/FiRMnkJGRgSNHjsj+Fhhz4ZevsGTsVi1fvhwf\nf/wxgBsvoPrTn/4Ei8WCsLAwAMC4cePw9ddfAwB27tyJo0ePKuetqalRXunJGBU8vJnu2Ww27Nq1\nC8XFxWjfvj2GDRuGhIQElwEthIDBYFA+/+tf/4rbbrtNVjJjXvGaN9O96upqGI1GtG/fHl999RWK\ni4tx6dIl7NmzBw6HA06nEx988IGy//Dhw7FixQpl++DBgzKyGfOIhzfTvYyMDDidTiQlJWHevHkY\nMmQITCYTfvOb3yAtLQ333XcfevfujdDQUAA33ov9iy++QHJyMvr27YtVq1ZJ/g4Ya4ofsGQB69Kl\nS+jUqROcTiceffRRTJ06FQ8//LDsLMZU4XveLGAtWLAAqamp6N+/P2JjY3lwM7/C97wZY8wP8T1v\nxhjzQzy8GWPMD/HwZowxP8TDmzHG/BAPb8YY80M8vBljzA/9P1aUEOrRcT6UAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.2. Ratings by profession" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#ratings by users based on their professions\n", "fashion_users.pivot_table(values='rating', rows=['profession'], aggfunc=[np.size, np.mean, np.std])" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sizemeanstd
profession
art 104 0.884615 0.832050
business 548 1.003650 0.836433
other 802 1.019950 0.862903
science 3006 1.021956 0.865170
social 112 0.482143 0.571794
\n", "

5 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ " size mean std\n", "profession \n", "art 104 0.884615 0.832050\n", "business 548 1.003650 0.836433\n", "other 802 1.019950 0.862903\n", "science 3006 1.021956 0.865170\n", "social 112 0.482143 0.571794\n", "\n", "[5 rows x 3 columns]" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.3. Ratings by how users like to spend their day off" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#the group of users who like shopping is the one who voted the large number of outfits\n", "fashion_users.pivot_table(values='rating', rows=['day_off'], aggfunc=[np.size, np.mean, np.std])" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sizemeanstd
day_off
family 604 0.890728 0.826058
party 1234 1.009724 0.850841
read 132 1.106061 0.896640
shop 1666 1.094838 0.862903
sport 936 0.888889 0.856043
\n", "

5 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ " size mean std\n", "day_off \n", "family 604 0.890728 0.826058\n", "party 1234 1.009724 0.850841\n", "read 132 1.106061 0.896640\n", "shop 1666 1.094838 0.862903\n", "sport 936 0.888889 0.856043\n", "\n", "[5 rows x 3 columns]" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.4. Ratings by how much of a fashionista they are" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#the group of users who has \"love\" or \"ok\" values to fashionista gave greater ratings than the ones who doesn't like fashion\n", "fashion_users.pivot_table(values='rating', rows=['fashionista'], aggfunc=[np.size, np.mean, np.std])" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sizemeanstd
fashionista
love 1646 1.002430 0.865671
nolike 414 0.850242 0.819535
ok 2512 1.028662 0.857574
\n", "

3 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ " size mean std\n", "fashionista \n", "love 1646 1.002430 0.865671\n", "nolike 414 0.850242 0.819535\n", "ok 2512 1.028662 0.857574\n", "\n", "[3 rows x 3 columns]" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "pt_fashionistas = fashion_users.pivot_table(values='rating', rows=['fashionista'], aggfunc=[np.mean])\n", "pt_fashionistas.plot(kind='bar', color='orange')\n", "plt.title('Mean ratings by fashionistas classification')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAErCAYAAAAR9QJuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlUFAe2BvCvWNzZURIWbREj+JRFcX8qecagxCVBjSgB\ntxg1o8ZMZnR0jorZDImZyTMmRqMDE1FcEp8romLEEDMuL0YlrmhEBTdUcIkoAvf94aPHFgpc6O4q\n+X7neI7VXVTd7tv10dyu7lZEREBERLpiY+0CiIjo0TG8iYh0iOFNRKRDDG8iIh1ieBMR6RDDm4hI\nhxjeNYCDgwOys7Mttr/s7GzY2NigtLS0WrY3YsQIuLq6omPHjo+9jcTERHTt2lX1+oiICCxZsuSx\nt19m9uzZGD169BNvxxzCwsKwePFis2z7zJkzcHBwQNmZxxcvXkS3bt3g6OiIP/3pT2a7X5YuXYrw\n8PBq364e2Fm7AC0xGAw4f/48zp07Bzc3N+PlISEhOHDgALKzs9G4cWMrVli1sLAwxMTEYNSoUcbL\nbty4YcWKnkxGRgbS0tJw7tw51KlTx2z7SUlJqZbtTJ069aHWq6hP5qYoChRFMcu2GzdubPI4W7hw\nIRo1aoTr169X2z6ys7Ph6+uL4uJi2Njce94ZHR2N6OjoatuHnvCZ930URYGvry+Sk5ONl2VmZqKw\nsNBsD/pHUVxcXOU6WqizOp0+fRoGg8GswW0NT1ufHnT69GkEBASYZdt8X+H/EzIyGAzy/vvvS7t2\n7YyXvfPOO/LBBx+Ioihy+vRpERG5ffu2vPPOO9K4cWPx8PCQsWPHSmFhoYiI5Ofny0svvSQNGzYU\nFxcX6dOnj+Tk5Bi31717d5k+fbp06dJFHBwc5MUXX5TLly9XWM/27dvFy8tL4uPj5ZlnnpHY2NhK\ntz9t2jSxtbWVOnXqSIMGDWTChAkiIqIoipw8eVJERIYNGyZvvvmmvPTSS+Lg4CAdOnQwXicisnnz\nZnnuuefEyclJ3nzzTenWrZssWrRIRESysrKkW7du4uTkJO7u7jJ48OAK6z516pQoiiILFy4UT09P\nefbZZ2XOnDkiInL+/HmpV6+eXLlyxbj+zz//LA0bNpTi4mKT7SxatEjq1Kkjtra20qBBA4mLi6vy\n/k1ISBBfX19xcHCQpk2bytKlS42X/+d//qf86U9/EhcXF2natKls2rTJpC9lt7O0tFTee+89adKk\niTRq1EhiY2Pl2rVrJrftn//8pzRu3Fjc3d3lgw8+MG5n5syZ8tprr4mISGFhoURHR4ubm5s4OztL\nu3bt5OLFi6p9mjhxovj4+Iijo6O0bdtWMjIyjNvdvXu3tG3bVhwdHcXDw0P++Mc/Vnjfi4isWbNG\ngoKCxNHRUZo1ayabN28WEZGwsDBZvHixiIicOHFCnn/+eXFzcxN3d3eJjo6WgoIC4zY++ugj8fLy\nEgcHB2nRooVs27at0jrK7pfi4mIZNmyY2NvbS61atcTBwUHS0tJM7hcRkYyMDOnUqZM4OzuLj4+P\nJCYmiojIhg0bJDg4WBwdHcXHx0fi4uKMP+Pj4yOKokiDBg3EwcFB/vWvfxn7Wmbnzp0SGhoqTk5O\n0q5dO/npp59Mevywx54eMLzvYzAYJC0tTVq0aCFHjhyR4uJi8fb2ltOnT5uE96RJk6R///6Sn58v\nN27ckL59+8rUqVNFROTKlSuyevVqKSwslBs3bsigQYPk5ZdfNu6je/fu4ufnJ1lZWVJYWChhYWHy\nl7/8pcJ6tm/fLnZ2dvKXv/xFioqKpLCwsMrt33+AlnkwvN3c3GTv3r1SXFws0dHREhUVJSIieXl5\n4ujoKP/zP/8jJSUl8t///d9ib29v3F5UVJR8+OGHIiJy584d2blzZ4V1lx3IQ4cOlVu3bklmZqY0\nbNhQ0tLSREQkIiJC5s+fb1x/0qRJMnHixAq3lZiYaHJwVnb7b968KY6OjnL8+HEREblw4YIcOnRI\nRO6Ft729vSxatEhKS0tl/vz54unpWeH9tnjxYvHz85NTp07JzZs3JTIyUmJiYkxu2xtvvCG3b9+W\nAwcOSO3ateXo0aMiIhIXF2dc96uvvpK+fftKYWGhlJaWyr59++T69euqfUpKSpKrV69KSUmJfPrp\np/LMM8/InTt3RESkY8eOkpSUJCIiv//+u+zatavC+2v37t3i5ORkvK9zc3ONtT0Y3mlpaVJUVCR5\neXnSrVs3mTRpkoiIHD16VHx8fOT8+fMiInL69Gnj40etjrL7paSkREREhg8fLtOnTzfWFRcXZwzv\n7OxscXBwkOXLl0txcbFcuXJF9u/fLyIi6enp8uuvv4qIyMGDB8XDw0PWrFlj/Ln791HW17LHx5Ur\nV8TZ2VmSkpKkpKREkpOTxcXFRa5evSoij3bs6QHHJhWIiYnBN998g61bt6Jly5bw8vIyXici+Prr\n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\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.5. Ratings by country and age" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#higher rates from Spanish friends than US\n", "fashion_users.pivot_table(values='rating', rows=['age', 'country'], aggfunc=[np.size, np.mean, np.std])" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sizemeanstd
agecountry
20ES 24 1.166667 0.816497
US 176 0.994318 0.851870
25ES 506 1.229249 0.880377
US 27 0.740741 0.813000
30ES 286 1.101399 0.842010
SE 22 1.363636 0.847711
US 476 0.848739 0.839936
35ES 193 0.772021 0.809993
US 151 0.854305 0.778009
40IE 288 0.913194 0.828141
US 21 0.952381 0.920662
45ES 25 0.920000 0.812404
50US 4 1.250000 0.957427
55ES 83 1.301205 0.851612
US 4 0.500000 0.577350
\n", "

15 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ " size mean std\n", "age country \n", "20 ES 24 1.166667 0.816497\n", " US 176 0.994318 0.851870\n", "25 ES 506 1.229249 0.880377\n", " US 27 0.740741 0.813000\n", "30 ES 286 1.101399 0.842010\n", " SE 22 1.363636 0.847711\n", " US 476 0.848739 0.839936\n", "35 ES 193 0.772021 0.809993\n", " US 151 0.854305 0.778009\n", "40 IE 288 0.913194 0.828141\n", " US 21 0.952381 0.920662\n", "45 ES 25 0.920000 0.812404\n", "50 US 4 1.250000 0.957427\n", "55 ES 83 1.301205 0.851612\n", " US 4 0.500000 0.577350\n", "\n", "[15 rows x 3 columns]" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "pt_country_age = fashion_users.pivot_table(values='rating', rows=['age', 'country'], aggfunc=[np.mean])\n", "pt_country_age.plot(kind='bar', color='orange')\n", "plt.title('Mean ratings by age and country')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "2.6. What are users' favorite styles?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** Styles go from 0 (hate the style) to 1 (love the style)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "styles = np.mean(users.ix[:,('user_style_casual chic', 'user_style_preppy', 'user_style_classic',\n", " 'user_style_romantic', 'user_style_bohemian chic','user_style_edgy')])\n", "fig = plt.figure(1, figsize=(8,5))\n", "ax = plt.subplot(111)\n", "styles.plot(kind='bar', color='orange')\n", "ax.set_xticklabels(['casual chic', 'preppy', 'classic', 'romantic', 'bohemian chic', 'edgy'], rotation=90)\n", "plt.title('Mean of liked styles by users')\n", "#plt.tight_layout()\n", "plt.show()\n", "#fig.savefig('styles_mean.png', dpi = (300))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nnwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 17 } ], "metadata": {} } ] }