{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"First of all congratulations to all the winners of Google Research - Identify Contrails to Reduce Global Warming!\n\nI have combined the data available from Public & Private LB, to create dataset [here](https://www.kaggle.com/datasets/ammarahmadqazi/google-identify-contrails-public-private-lb-data)\n\n\nIn this notebook, we would visualize the patterns of participants winning gold, silver, bronze or no medals. \n\n\nPlease don't forget to upvote this notebook and the dataset if you find this useful. ","metadata":{"papermill":{"duration":0.008486,"end_time":"2023-08-12T07:26:17.16732","exception":false,"start_time":"2023-08-12T07:26:17.158834","status":"completed"},"tags":[]}},{"cell_type":"code","source":"# Importing libraries\nimport pandas as pd\nimport matplotlib\nimport matplotlib.pyplot as plt\nimport matplotlib as mpl\nimport seaborn as sns\nfrom matplotlib.colors import ListedColormap\nmpl.rcParams['figure.dpi']= 150","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","papermill":{"duration":1.636732,"end_time":"2023-08-12T07:26:18.811743","exception":false,"start_time":"2023-08-12T07:26:17.175011","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:28.978832Z","iopub.execute_input":"2023-08-18T16:24:28.979272Z","iopub.status.idle":"2023-08-18T16:24:29.658182Z","shell.execute_reply.started":"2023-08-18T16:24:28.979235Z","shell.execute_reply":"2023-08-18T16:24:29.657019Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Dataset consists of following columns:\n* Private_LB_Rank - Rank on Private Leaderboard\n* TeamId - Unique ID for each team participating\n* TeamName - Name of the teams participating\n* LastSubmissionDate - Timestamp for the last submission made by each participant\n* Private_LB_Score - Score on Private Leaderboard\n* SubmissionCount - Number of submissions by each participant\n* TeamMemberUserNames - Name of the members participating from each team\n* Public_LB_Rank - Rank on Public Leaderboard \n* Public_LB_Score - Score on Public Leaderboard\n* Medal_won - Whether won Gold, Silver, Bronze or No medals in the competition\n* DaysSinceLastSubmission - Days since the participant made the last submission","metadata":{"papermill":{"duration":0.007256,"end_time":"2023-08-12T07:26:18.826647","exception":false,"start_time":"2023-08-12T07:26:18.819391","status":"completed"},"tags":[]}},{"cell_type":"code","source":"private_public_lb = pd.read_csv(\"/kaggle/input/google-identify-contrails-public-private-lb-data/google_research_identify_contrails_public_private_LB_data.csv\")\nprivate_public_lb","metadata":{"papermill":{"duration":0.100723,"end_time":"2023-08-12T07:26:18.935003","exception":false,"start_time":"2023-08-12T07:26:18.83428","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:46.180868Z","iopub.execute_input":"2023-08-18T16:24:46.181302Z","iopub.status.idle":"2023-08-18T16:24:46.241057Z","shell.execute_reply.started":"2023-08-18T16:24:46.181269Z","shell.execute_reply":"2023-08-18T16:24:46.240186Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sns.countplot(data=private_public_lb, x='Medal_won');","metadata":{"papermill":{"duration":0.348626,"end_time":"2023-08-12T07:26:19.291701","exception":false,"start_time":"2023-08-12T07:26:18.943075","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:47.13196Z","iopub.execute_input":"2023-08-18T16:24:47.132782Z","iopub.status.idle":"2023-08-18T16:24:47.405181Z","shell.execute_reply.started":"2023-08-18T16:24:47.132739Z","shell.execute_reply":"2023-08-18T16:24:47.403875Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### Histogram plot of days since last submission for the participants","metadata":{"papermill":{"duration":0.008396,"end_time":"2023-08-12T07:26:19.30883","exception":false,"start_time":"2023-08-12T07:26:19.300434","status":"completed"},"tags":[]}},{"cell_type":"code","source":"sns.histplot(data=private_public_lb, x=\"DaysSinceLastSubmission\");","metadata":{"papermill":{"duration":0.429804,"end_time":"2023-08-12T07:26:19.748194","exception":false,"start_time":"2023-08-12T07:26:19.31839","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:48.886867Z","iopub.execute_input":"2023-08-18T16:24:48.887265Z","iopub.status.idle":"2023-08-18T16:24:49.159928Z","shell.execute_reply.started":"2023-08-18T16:24:48.887234Z","shell.execute_reply":"2023-08-18T16:24:49.158814Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# funstion to generate scatter plot\n\ndef plot_scatter(x, y, val, xlim, ylim, xlabel, ylabel, loc, plot_line = False):\n    \n    dictionary = {'Gold': 0,'Silver':1, 'Bronze':2, 'No Medal':3}\n    values = [dictionary[i] for i in val]\n\n    classes = ['Gold', 'Silver', 'Bronze', 'No Medal']\n    colors = ListedColormap(['gold', 'silver', 'brown', 'c'])\n\n    #create scatterplot\n    scatter = plt.scatter(x, y, c=values, s=2, cmap=colors)\n    if plot_line == True:\n        plt.plot([0,1], [0,1])\n    plt.xlim(xlim)\n    plt.ylim(ylim)\n    plt.xlabel(xlabel)\n    plt.ylabel(ylabel)\n    plt.legend(handles=scatter.legend_elements()[0], labels=classes, loc = loc)\n    plt.show()\n    ","metadata":{"papermill":{"duration":0.024545,"end_time":"2023-08-12T07:26:19.782217","exception":false,"start_time":"2023-08-12T07:26:19.757672","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:49.58225Z","iopub.execute_input":"2023-08-18T16:24:49.583088Z","iopub.status.idle":"2023-08-18T16:24:49.590899Z","shell.execute_reply.started":"2023-08-18T16:24:49.58305Z","shell.execute_reply":"2023-08-18T16:24:49.589889Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Public versus Private LB Score  ","metadata":{"papermill":{"duration":0.0091,"end_time":"2023-08-12T07:26:19.800654","exception":false,"start_time":"2023-08-12T07:26:19.791554","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"Both public and private score have been clipped between 0.6 and 75 for better visualization of participants winning gold, silver and bronze medals. \n\nBlue line shows perfect correlation between Public and Private LB Score","metadata":{"papermill":{"duration":0.009355,"end_time":"2023-08-12T07:26:19.819637","exception":false,"start_time":"2023-08-12T07:26:19.810282","status":"completed"},"tags":[]}},{"cell_type":"code","source":"plot_scatter(x = private_public_lb['Public_LB_Score'],\n             y = private_public_lb['Private_LB_Score'],\n             val = private_public_lb['Medal_won'],\n             xlim = [0.6,0.75],\n             ylim = [0.6,0.75],\n             xlabel = 'Public LB Score',\n             ylabel = 'Private LB Score',\n             loc = 'lower right',\n             plot_line = True\n            )","metadata":{"papermill":{"duration":0.454285,"end_time":"2023-08-12T07:26:20.283385","exception":false,"start_time":"2023-08-12T07:26:19.8291","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:50.95518Z","iopub.execute_input":"2023-08-18T16:24:50.955564Z","iopub.status.idle":"2023-08-18T16:24:51.30169Z","shell.execute_reply.started":"2023-08-18T16:24:50.955529Z","shell.execute_reply":"2023-08-18T16:24:51.300333Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Plot of No. of days since the last submission v/s Private LB Score","metadata":{"papermill":{"duration":0.011697,"end_time":"2023-08-12T07:26:20.306716","exception":false,"start_time":"2023-08-12T07:26:20.295019","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"Y-axis i.e. Private LB score is clipped for better visualization","metadata":{"papermill":{"duration":0.011668,"end_time":"2023-08-12T07:26:20.330533","exception":false,"start_time":"2023-08-12T07:26:20.318865","status":"completed"},"tags":[]}},{"cell_type":"code","source":"plot_scatter(x = private_public_lb['DaysSinceLastSubmission'],\n             y = private_public_lb['Private_LB_Score'],\n             val = private_public_lb['Medal_won'],\n             xlim = None,\n             ylim = [0.6, 0.75],\n             xlabel = 'Days since last submitted',\n             ylabel = 'Private LB Score',\n             loc = 'upper right'\n            )","metadata":{"papermill":{"duration":0.465528,"end_time":"2023-08-12T07:26:20.808096","exception":false,"start_time":"2023-08-12T07:26:20.342568","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:55.956129Z","iopub.execute_input":"2023-08-18T16:24:55.956504Z","iopub.status.idle":"2023-08-18T16:24:56.28307Z","shell.execute_reply.started":"2023-08-18T16:24:55.956475Z","shell.execute_reply":"2023-08-18T16:24:56.281606Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### No. of submissions v/s Private LB Score","metadata":{"papermill":{"duration":0.015199,"end_time":"2023-08-12T07:26:20.838306","exception":false,"start_time":"2023-08-12T07:26:20.823107","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"Y-axis i.e. Private LB score is clipped for better visualization","metadata":{}},{"cell_type":"code","source":"plot_scatter(x = private_public_lb['SubmissionCount'],\n             y = private_public_lb['Private_LB_Score'],\n             val = private_public_lb['Medal_won'],\n             xlim = None,\n             ylim = [0.6, 0.75],\n             xlabel = 'No of Submissions',\n             ylabel = 'Private LB Score',\n             loc = 'upper right'\n            )","metadata":{"papermill":{"duration":0.511002,"end_time":"2023-08-12T07:26:21.365592","exception":false,"start_time":"2023-08-12T07:26:20.85459","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:24:58.834032Z","iopub.execute_input":"2023-08-18T16:24:58.834487Z","iopub.status.idle":"2023-08-18T16:24:59.188181Z","shell.execute_reply.started":"2023-08-18T16:24:58.834451Z","shell.execute_reply":"2023-08-18T16:24:59.186886Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Plot of days since last submitted v/s no. of submissions","metadata":{"papermill":{"duration":0.016881,"end_time":"2023-08-12T07:26:21.405882","exception":false,"start_time":"2023-08-12T07:26:21.389001","status":"completed"},"tags":[]}},{"cell_type":"code","source":"plot_scatter(x = private_public_lb['DaysSinceLastSubmission'],\n             y = private_public_lb['SubmissionCount'],\n             val = private_public_lb['Medal_won'],\n             xlim = None,\n             ylim = None,\n             xlabel = 'No. of days since last submission',\n             ylabel = 'Total no. of submissions',\n             loc = 'upper right'\n            )","metadata":{"papermill":{"duration":0.47597,"end_time":"2023-08-12T07:26:21.900197","exception":false,"start_time":"2023-08-12T07:26:21.424227","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:25:00.53623Z","iopub.execute_input":"2023-08-18T16:25:00.536767Z","iopub.status.idle":"2023-08-18T16:25:00.847913Z","shell.execute_reply.started":"2023-08-18T16:25:00.536721Z","shell.execute_reply":"2023-08-18T16:25:00.846801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Shakeup between Public & Private Leaderboard","metadata":{"papermill":{"duration":0.019573,"end_time":"2023-08-12T07:26:21.93893","exception":false,"start_time":"2023-08-12T07:26:21.919357","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"Let us try to visualize the shakeup between public and private leaderboard","metadata":{"papermill":{"duration":0.018983,"end_time":"2023-08-12T07:26:21.977642","exception":false,"start_time":"2023-08-12T07:26:21.958659","status":"completed"},"tags":[]}},{"cell_type":"code","source":"private_public_lb['shakeup'] = private_public_lb['Public_LB_Rank'] - private_public_lb['Private_LB_Rank']\nsns.kdeplot(data=private_public_lb, x=\"shakeup\", hue = 'Medal_won');","metadata":{"papermill":{"duration":0.499949,"end_time":"2023-08-12T07:26:22.496829","exception":false,"start_time":"2023-08-12T07:26:21.99688","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-08-18T16:25:05.082045Z","iopub.execute_input":"2023-08-18T16:25:05.082479Z","iopub.status.idle":"2023-08-18T16:25:05.47919Z","shell.execute_reply.started":"2023-08-18T16:25:05.082415Z","shell.execute_reply":"2023-08-18T16:25:05.47797Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"papermill":{"duration":0.020247,"end_time":"2023-08-12T07:26:23.321182","exception":false,"start_time":"2023-08-12T07:26:23.300935","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]}]}