Skip to content

Instantly share code, notes, and snippets.

@taposh
Created April 22, 2019 06:44
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save taposh/35e99ebe489e7679cd83aec011c08452 to your computer and use it in GitHub Desktop.
Save taposh/35e99ebe489e7679cd83aec011c08452 to your computer and use it in GitHub Desktop.
Kdd_rl.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Kdd_rl.ipynb",
"version": "0.3.2",
"provenance": [],
"toc_visible": true,
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/taposh/35e99ebe489e7679cd83aec011c08452/kdd_rl.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "R91c9ZDZtc-y",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# **KDD Competition - RL on Hexagon-ml**"
]
},
{
"metadata": {
"id": "_TbWx66Xt0vj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 119
},
"outputId": "9e4e7ee7-f4d8-46a8-ebed-d5a8a1c794a5"
},
"cell_type": "code",
"source": [
"\n",
"!pip3 uninstall netsapi\n",
"\n"
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": [
"Uninstalling netsapi-1.0:\n",
" Would remove:\n",
" /root/.local/lib/python3.6/site-packages/netsapi-1.0.dist-info/*\n",
" /root/.local/lib/python3.6/site-packages/netsapi/*\n",
"Proceed (y/n)? y\n",
" Successfully uninstalled netsapi-1.0\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "rj8CY7UstXSk",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
},
"outputId": "9f61c556-691b-436d-92b4-bf317a9f7fb2"
},
"cell_type": "code",
"source": [
"!pip3 install git+https://github.com/slremy/netsapi --user --upgrade\n",
" \n",
"import numpy as np\n",
"import pandas as pd\n",
"from collections import OrderedDict\n",
"\n",
"from netsapi.challenge import *\n",
"from sys import exit, exc_info, argv\n",
"\n",
"class CustomAgent:\n",
" def __init__(self, environment, popsize=10):\n",
" self.popsize=popsize\n",
" self.environment = environment\n",
" self.popsize = popsize\n",
"\n",
" \n",
" self.episodes = []\n",
" self.scores = []\n",
" self.policies = []\n",
"\n",
" def generate(self):\n",
" best_policy = None\n",
" best_reward = -float('Inf')\n",
" try:\n",
" # select a set of random candidate solutions to be evaluated\n",
" policies = np.random.rand(self.popsize, self.environment.policyDimension)\n",
" rewards = self.environment.evaluateReward(policies)\n",
" best_policy = policies[np.argmax(rewards),:]\n",
" \n",
" except (KeyboardInterrupt, SystemExit):\n",
" print(exc_info())\n",
" \n",
" return best_policy\n",
"\n",
" def scoringFunction(self):\n",
" scores = []\n",
" for ii in range(10):\n",
" self.environment.reset()\n",
" finalresult = self.generate()\n",
" self.policies.append(finalresult)\n",
" reward = self.environment.evaluateReward(finalresult)\n",
" self.scores.append(reward)\n",
" self.episodes.append(ii)\n",
"\n",
" return np.mean(self.scores)/np.std(self.scores)\n",
" \n",
" \n",
" def create_submissions(self, filename = 'my_submission.csv'):\n",
" labels = ['episode_no', 'reward', 'policy']\n",
" rewards = np.array(self.scores)\n",
" data = { 'episode_no': self.episodes, \n",
" 'rewards': rewards,\n",
" 'policy': self.policies,\n",
" }\n",
" submission_file = pd.DataFrame(data)\n",
" submission_file.to_csv(filename, index=False)"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting git+https://github.com/slremy/netsapi\n",
" Cloning https://github.com/slremy/netsapi to /tmp/pip-req-build-vlpi2t_u\n",
"Building wheels for collected packages: netsapi\n",
" Building wheel for netsapi (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Stored in directory: /tmp/pip-ephem-wheel-cache-8ye6c3l1/wheels/9e/73/c9/86a9cc2460e11b3ce5b0a5ebd2d9d332a68afe0941659967fa\n",
"Successfully built netsapi\n",
"Installing collected packages: netsapi\n",
" Found existing installation: netsapi 1.0\n",
" Uninstalling netsapi-1.0:\n",
" Successfully uninstalled netsapi-1.0\n",
"Successfully installed netsapi-1.0\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "-v9BQpLrtYKP",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 357
},
"outputId": "7a2cdaa2-c322-40b6-b2b1-94ce9c1b8997"
},
"cell_type": "code",
"source": [
"env = ChallengeEnvironment(experimentCount = 1000)\n",
"a = CustomAgent(env)\n",
"a.scoringFunction()\n",
"a.create_submissions(\"test.csv\")"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n",
"1000 exps left\n",
"990 exps left\n"
],
"name": "stdout"
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment