Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.67 KB | None | 0 0
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# Inverse Propensity Scoring with unique contexts\n",
  8. "\n",
  9. "This notebook attempts to get insight into the problem of having unique contexts when using Inverse Propensity Scoring to get an unbiased estimate of a new policy based on historical data.\n",
  10. "\n",
  11. "Recall the formula we use to estimate the value $V_\\pi$ of policy $\\pi$:\n",
  12. "\n",
  13. "$${V}_{\\pi} = \\frac{1}{|S|} \\sum_{(x,a,r_a,p) \\in S} \\frac{r_a I(\\pi(x) = a)}{p}$$"
  14. ]
  15. },
  16. {
  17. "cell_type": "code",
  18. "execution_count": 18,
  19. "metadata": {},
  20. "outputs": [],
  21. "source": [
  22. "import numpy as np\n",
  23. "import pandas as pd\n",
  24. "\n",
  25. "from sklearn.linear_model import LogisticRegression\n",
  26. "\n",
  27. "def highlight_diag(df):\n",
  28. " a = np.full(df.shape, '', dtype='<U24')\n",
  29. " np.fill_diagonal(a, 'font-weight: bold')\n",
  30. " return pd.DataFrame(a, index=df.index, columns=df.columns)"
  31. ]
  32. },
  33. {
  34. "cell_type": "code",
  35. "execution_count": 3,
  36. "metadata": {},
  37. "outputs": [],
  38. "source": [
  39. "features = np.arange(10)"
  40. ]
  41. },
  42. {
  43. "cell_type": "markdown",
  44. "metadata": {},
  45. "source": [
  46. "## Fully independent contexts\n",
  47. "\n",
  48. "Using IPS when contexts are fully independent and unique results in sampling error. \n",
  49. "\n",
  50. "Here, we have a log of 10 payments, described by 10 features. When these payments were logged, we selected an action with probability $0.1$. However, because the payments are unique and in no way similar, it's more like we selected the action with probability $1$. Thus, using $p = 0.1$ in our IPS estimator will yield biased results."
  51. ]
  52. },
  53. {
  54. "cell_type": "code",
  55. "execution_count": 9,
  56. "metadata": {},
  57. "outputs": [
  58. {
  59. "data": {
  60. "text/html": [
  61. "<div>\n",
  62. "<style scoped>\n",
  63. " .dataframe tbody tr th:only-of-type {\n",
  64. " vertical-align: middle;\n",
  65. " }\n",
  66. "\n",
  67. " .dataframe tbody tr th {\n",
  68. " vertical-align: top;\n",
  69. " }\n",
  70. "\n",
  71. " .dataframe thead th {\n",
  72. " text-align: right;\n",
  73. " }\n",
  74. "</style>\n",
  75. "<table border=\"1\" class=\"dataframe\">\n",
  76. " <thead>\n",
  77. " <tr style=\"text-align: right;\">\n",
  78. " <th></th>\n",
  79. " <th>0</th>\n",
  80. " <th>1</th>\n",
  81. " <th>2</th>\n",
  82. " <th>3</th>\n",
  83. " <th>4</th>\n",
  84. " <th>5</th>\n",
  85. " <th>6</th>\n",
  86. " <th>7</th>\n",
  87. " <th>8</th>\n",
  88. " <th>9</th>\n",
  89. " <th>p</th>\n",
  90. " <th>action</th>\n",
  91. " </tr>\n",
  92. " </thead>\n",
  93. " <tbody>\n",
  94. " <tr>\n",
  95. " <th>0</th>\n",
  96. " <td>10</td>\n",
  97. " <td>0</td>\n",
  98. " <td>0</td>\n",
  99. " <td>0</td>\n",
  100. " <td>0</td>\n",
  101. " <td>0</td>\n",
  102. " <td>0</td>\n",
  103. " <td>0</td>\n",
  104. " <td>0</td>\n",
  105. " <td>0</td>\n",
  106. " <td>0.1</td>\n",
  107. " <td>0</td>\n",
  108. " </tr>\n",
  109. " <tr>\n",
  110. " <th>1</th>\n",
  111. " <td>0</td>\n",
  112. " <td>10</td>\n",
  113. " <td>0</td>\n",
  114. " <td>0</td>\n",
  115. " <td>0</td>\n",
  116. " <td>0</td>\n",
  117. " <td>0</td>\n",
  118. " <td>0</td>\n",
  119. " <td>0</td>\n",
  120. " <td>0</td>\n",
  121. " <td>0.1</td>\n",
  122. " <td>1</td>\n",
  123. " </tr>\n",
  124. " <tr>\n",
  125. " <th>2</th>\n",
  126. " <td>0</td>\n",
  127. " <td>0</td>\n",
  128. " <td>10</td>\n",
  129. " <td>0</td>\n",
  130. " <td>0</td>\n",
  131. " <td>0</td>\n",
  132. " <td>0</td>\n",
  133. " <td>0</td>\n",
  134. " <td>0</td>\n",
  135. " <td>0</td>\n",
  136. " <td>0.1</td>\n",
  137. " <td>2</td>\n",
  138. " </tr>\n",
  139. " <tr>\n",
  140. " <th>3</th>\n",
  141. " <td>0</td>\n",
  142. " <td>0</td>\n",
  143. " <td>0</td>\n",
  144. " <td>10</td>\n",
  145. " <td>0</td>\n",
  146. " <td>0</td>\n",
  147. " <td>0</td>\n",
  148. " <td>0</td>\n",
  149. " <td>0</td>\n",
  150. " <td>0</td>\n",
  151. " <td>0.1</td>\n",
  152. " <td>3</td>\n",
  153. " </tr>\n",
  154. " <tr>\n",
  155. " <th>4</th>\n",
  156. " <td>0</td>\n",
  157. " <td>0</td>\n",
  158. " <td>0</td>\n",
  159. " <td>0</td>\n",
  160. " <td>10</td>\n",
  161. " <td>0</td>\n",
  162. " <td>0</td>\n",
  163. " <td>0</td>\n",
  164. " <td>0</td>\n",
  165. " <td>0</td>\n",
  166. " <td>0.1</td>\n",
  167. " <td>4</td>\n",
  168. " </tr>\n",
  169. " <tr>\n",
  170. " <th>5</th>\n",
  171. " <td>0</td>\n",
  172. " <td>0</td>\n",
  173. " <td>0</td>\n",
  174. " <td>0</td>\n",
  175. " <td>0</td>\n",
  176. " <td>10</td>\n",
  177. " <td>0</td>\n",
  178. " <td>0</td>\n",
  179. " <td>0</td>\n",
  180. " <td>0</td>\n",
  181. " <td>0.1</td>\n",
  182. " <td>5</td>\n",
  183. " </tr>\n",
  184. " <tr>\n",
  185. " <th>6</th>\n",
  186. " <td>0</td>\n",
  187. " <td>0</td>\n",
  188. " <td>0</td>\n",
  189. " <td>0</td>\n",
  190. " <td>0</td>\n",
  191. " <td>0</td>\n",
  192. " <td>10</td>\n",
  193. " <td>0</td>\n",
  194. " <td>0</td>\n",
  195. " <td>0</td>\n",
  196. " <td>0.1</td>\n",
  197. " <td>6</td>\n",
  198. " </tr>\n",
  199. " <tr>\n",
  200. " <th>7</th>\n",
  201. " <td>0</td>\n",
  202. " <td>0</td>\n",
  203. " <td>0</td>\n",
  204. " <td>0</td>\n",
  205. " <td>0</td>\n",
  206. " <td>0</td>\n",
  207. " <td>0</td>\n",
  208. " <td>10</td>\n",
  209. " <td>0</td>\n",
  210. " <td>0</td>\n",
  211. " <td>0.1</td>\n",
  212. " <td>7</td>\n",
  213. " </tr>\n",
  214. " <tr>\n",
  215. " <th>8</th>\n",
  216. " <td>0</td>\n",
  217. " <td>0</td>\n",
  218. " <td>0</td>\n",
  219. " <td>0</td>\n",
  220. " <td>0</td>\n",
  221. " <td>0</td>\n",
  222. " <td>0</td>\n",
  223. " <td>0</td>\n",
  224. " <td>10</td>\n",
  225. " <td>0</td>\n",
  226. " <td>0.1</td>\n",
  227. " <td>8</td>\n",
  228. " </tr>\n",
  229. " <tr>\n",
  230. " <th>9</th>\n",
  231. " <td>0</td>\n",
  232. " <td>0</td>\n",
  233. " <td>0</td>\n",
  234. " <td>0</td>\n",
  235. " <td>0</td>\n",
  236. " <td>0</td>\n",
  237. " <td>0</td>\n",
  238. " <td>0</td>\n",
  239. " <td>0</td>\n",
  240. " <td>10</td>\n",
  241. " <td>0.1</td>\n",
  242. " <td>9</td>\n",
  243. " </tr>\n",
  244. " </tbody>\n",
  245. "</table>\n",
  246. "</div>"
  247. ],
  248. "text/plain": [
  249. " 0 1 2 3 4 5 6 7 8 9 p action\n",
  250. "0 10 0 0 0 0 0 0 0 0 0 0.1 0\n",
  251. "1 0 10 0 0 0 0 0 0 0 0 0.1 1\n",
  252. "2 0 0 10 0 0 0 0 0 0 0 0.1 2\n",
  253. "3 0 0 0 10 0 0 0 0 0 0 0.1 3\n",
  254. "4 0 0 0 0 10 0 0 0 0 0 0.1 4\n",
  255. "5 0 0 0 0 0 10 0 0 0 0 0.1 5\n",
  256. "6 0 0 0 0 0 0 10 0 0 0 0.1 6\n",
  257. "7 0 0 0 0 0 0 0 10 0 0 0.1 7\n",
  258. "8 0 0 0 0 0 0 0 0 10 0 0.1 8\n",
  259. "9 0 0 0 0 0 0 0 0 0 10 0.1 9"
  260. ]
  261. },
  262. "execution_count": 9,
  263. "metadata": {},
  264. "output_type": "execute_result"
  265. }
  266. ],
  267. "source": [
  268. "# Build a dataframe with 10 fully independent unique contexts. Our behavior policy \n",
  269. "indep = (pd.get_dummies(np.arange(10))*10).assign(p=np.repeat([0.1],10)).assign(action=np.arange(10))\n",
  270. "indep"
  271. ]
  272. },
  273. {
  274. "cell_type": "markdown",
  275. "metadata": {},
  276. "source": [
  277. "Indeed, when we try to predict the action based on the payment features, it's more like we selected the action with probability $0.95 \\approx 1$."
  278. ]
  279. },
  280. {
  281. "cell_type": "code",
  282. "execution_count": 14,
  283. "metadata": {},
  284. "outputs": [],
  285. "source": [
  286. "clf_i = LogisticRegression(multi_class='multinomial', max_iter=1000, solver='lbfgs').fit(indep[features], indep['action'])"
  287. ]
  288. },
  289. {
  290. "cell_type": "code",
  291. "execution_count": 17,
  292. "metadata": {},
  293. "outputs": [
  294. {
  295. "data": {
  296. "text/html": [
  297. "<style type=\"text/css\" >\n",
  298. " #T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col0 {\n",
  299. " font-weight: bold;\n",
  300. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col1 {\n",
  301. " font-weight: bold;\n",
  302. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col2 {\n",
  303. " font-weight: bold;\n",
  304. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col3 {\n",
  305. " font-weight: bold;\n",
  306. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col4 {\n",
  307. " font-weight: bold;\n",
  308. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col5 {\n",
  309. " font-weight: bold;\n",
  310. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col6 {\n",
  311. " font-weight: bold;\n",
  312. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col7 {\n",
  313. " font-weight: bold;\n",
  314. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col8 {\n",
  315. " font-weight: bold;\n",
  316. " } #T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col9 {\n",
  317. " font-weight: bold;\n",
  318. " }</style><table id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5\" ><thead> <tr> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >0</th> <th class=\"col_heading level0 col1\" >1</th> <th class=\"col_heading level0 col2\" >2</th> <th class=\"col_heading level0 col3\" >3</th> <th class=\"col_heading level0 col4\" >4</th> <th class=\"col_heading level0 col5\" >5</th> <th class=\"col_heading level0 col6\" >6</th> <th class=\"col_heading level0 col7\" >7</th> <th class=\"col_heading level0 col8\" >8</th> <th class=\"col_heading level0 col9\" >9</th> </tr></thead><tbody>\n",
  319. " <tr>\n",
  320. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
  321. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col0\" class=\"data row0 col0\" >0.953116</td>\n",
  322. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col1\" class=\"data row0 col1\" >0.00520931</td>\n",
  323. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col2\" class=\"data row0 col2\" >0.00520931</td>\n",
  324. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col3\" class=\"data row0 col3\" >0.00520931</td>\n",
  325. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col4\" class=\"data row0 col4\" >0.00520931</td>\n",
  326. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col5\" class=\"data row0 col5\" >0.00520931</td>\n",
  327. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col6\" class=\"data row0 col6\" >0.00520931</td>\n",
  328. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col7\" class=\"data row0 col7\" >0.00520931</td>\n",
  329. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col8\" class=\"data row0 col8\" >0.00520931</td>\n",
  330. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row0_col9\" class=\"data row0 col9\" >0.00520931</td>\n",
  331. " </tr>\n",
  332. " <tr>\n",
  333. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
  334. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col0\" class=\"data row1 col0\" >0.00520931</td>\n",
  335. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col1\" class=\"data row1 col1\" >0.953116</td>\n",
  336. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col2\" class=\"data row1 col2\" >0.00520931</td>\n",
  337. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col3\" class=\"data row1 col3\" >0.00520931</td>\n",
  338. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col4\" class=\"data row1 col4\" >0.00520931</td>\n",
  339. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col5\" class=\"data row1 col5\" >0.00520931</td>\n",
  340. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col6\" class=\"data row1 col6\" >0.00520931</td>\n",
  341. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col7\" class=\"data row1 col7\" >0.00520931</td>\n",
  342. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col8\" class=\"data row1 col8\" >0.00520931</td>\n",
  343. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row1_col9\" class=\"data row1 col9\" >0.00520931</td>\n",
  344. " </tr>\n",
  345. " <tr>\n",
  346. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
  347. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col0\" class=\"data row2 col0\" >0.00520931</td>\n",
  348. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col1\" class=\"data row2 col1\" >0.00520931</td>\n",
  349. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col2\" class=\"data row2 col2\" >0.953116</td>\n",
  350. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col3\" class=\"data row2 col3\" >0.00520931</td>\n",
  351. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col4\" class=\"data row2 col4\" >0.00520931</td>\n",
  352. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col5\" class=\"data row2 col5\" >0.00520931</td>\n",
  353. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col6\" class=\"data row2 col6\" >0.00520931</td>\n",
  354. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col7\" class=\"data row2 col7\" >0.00520931</td>\n",
  355. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col8\" class=\"data row2 col8\" >0.00520931</td>\n",
  356. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row2_col9\" class=\"data row2 col9\" >0.00520931</td>\n",
  357. " </tr>\n",
  358. " <tr>\n",
  359. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
  360. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col0\" class=\"data row3 col0\" >0.00520931</td>\n",
  361. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col1\" class=\"data row3 col1\" >0.00520931</td>\n",
  362. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col2\" class=\"data row3 col2\" >0.00520931</td>\n",
  363. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col3\" class=\"data row3 col3\" >0.953116</td>\n",
  364. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col4\" class=\"data row3 col4\" >0.00520931</td>\n",
  365. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col5\" class=\"data row3 col5\" >0.00520931</td>\n",
  366. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col6\" class=\"data row3 col6\" >0.00520931</td>\n",
  367. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col7\" class=\"data row3 col7\" >0.00520931</td>\n",
  368. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col8\" class=\"data row3 col8\" >0.00520931</td>\n",
  369. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row3_col9\" class=\"data row3 col9\" >0.00520931</td>\n",
  370. " </tr>\n",
  371. " <tr>\n",
  372. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
  373. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col0\" class=\"data row4 col0\" >0.00520931</td>\n",
  374. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col1\" class=\"data row4 col1\" >0.00520931</td>\n",
  375. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col2\" class=\"data row4 col2\" >0.00520931</td>\n",
  376. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col3\" class=\"data row4 col3\" >0.00520931</td>\n",
  377. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col4\" class=\"data row4 col4\" >0.953116</td>\n",
  378. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col5\" class=\"data row4 col5\" >0.00520931</td>\n",
  379. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col6\" class=\"data row4 col6\" >0.00520931</td>\n",
  380. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col7\" class=\"data row4 col7\" >0.00520931</td>\n",
  381. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col8\" class=\"data row4 col8\" >0.00520931</td>\n",
  382. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row4_col9\" class=\"data row4 col9\" >0.00520931</td>\n",
  383. " </tr>\n",
  384. " <tr>\n",
  385. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
  386. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col0\" class=\"data row5 col0\" >0.00520931</td>\n",
  387. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col1\" class=\"data row5 col1\" >0.00520931</td>\n",
  388. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col2\" class=\"data row5 col2\" >0.00520931</td>\n",
  389. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col3\" class=\"data row5 col3\" >0.00520931</td>\n",
  390. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col4\" class=\"data row5 col4\" >0.00520931</td>\n",
  391. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col5\" class=\"data row5 col5\" >0.953116</td>\n",
  392. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col6\" class=\"data row5 col6\" >0.00520931</td>\n",
  393. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col7\" class=\"data row5 col7\" >0.00520931</td>\n",
  394. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col8\" class=\"data row5 col8\" >0.00520931</td>\n",
  395. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row5_col9\" class=\"data row5 col9\" >0.00520931</td>\n",
  396. " </tr>\n",
  397. " <tr>\n",
  398. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
  399. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col0\" class=\"data row6 col0\" >0.00520931</td>\n",
  400. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col1\" class=\"data row6 col1\" >0.00520931</td>\n",
  401. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col2\" class=\"data row6 col2\" >0.00520931</td>\n",
  402. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col3\" class=\"data row6 col3\" >0.00520931</td>\n",
  403. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col4\" class=\"data row6 col4\" >0.00520931</td>\n",
  404. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col5\" class=\"data row6 col5\" >0.00520931</td>\n",
  405. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col6\" class=\"data row6 col6\" >0.953116</td>\n",
  406. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col7\" class=\"data row6 col7\" >0.00520931</td>\n",
  407. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col8\" class=\"data row6 col8\" >0.00520931</td>\n",
  408. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row6_col9\" class=\"data row6 col9\" >0.00520931</td>\n",
  409. " </tr>\n",
  410. " <tr>\n",
  411. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
  412. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col0\" class=\"data row7 col0\" >0.00520931</td>\n",
  413. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col1\" class=\"data row7 col1\" >0.00520931</td>\n",
  414. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col2\" class=\"data row7 col2\" >0.00520931</td>\n",
  415. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col3\" class=\"data row7 col3\" >0.00520931</td>\n",
  416. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col4\" class=\"data row7 col4\" >0.00520931</td>\n",
  417. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col5\" class=\"data row7 col5\" >0.00520931</td>\n",
  418. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col6\" class=\"data row7 col6\" >0.00520931</td>\n",
  419. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col7\" class=\"data row7 col7\" >0.953116</td>\n",
  420. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col8\" class=\"data row7 col8\" >0.00520931</td>\n",
  421. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row7_col9\" class=\"data row7 col9\" >0.00520931</td>\n",
  422. " </tr>\n",
  423. " <tr>\n",
  424. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
  425. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col0\" class=\"data row8 col0\" >0.00520931</td>\n",
  426. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col1\" class=\"data row8 col1\" >0.00520931</td>\n",
  427. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col2\" class=\"data row8 col2\" >0.00520931</td>\n",
  428. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col3\" class=\"data row8 col3\" >0.00520931</td>\n",
  429. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col4\" class=\"data row8 col4\" >0.00520931</td>\n",
  430. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col5\" class=\"data row8 col5\" >0.00520931</td>\n",
  431. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col6\" class=\"data row8 col6\" >0.00520931</td>\n",
  432. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col7\" class=\"data row8 col7\" >0.00520931</td>\n",
  433. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col8\" class=\"data row8 col8\" >0.953116</td>\n",
  434. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row8_col9\" class=\"data row8 col9\" >0.00520931</td>\n",
  435. " </tr>\n",
  436. " <tr>\n",
  437. " <th id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
  438. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col0\" class=\"data row9 col0\" >0.00520931</td>\n",
  439. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col1\" class=\"data row9 col1\" >0.00520931</td>\n",
  440. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col2\" class=\"data row9 col2\" >0.00520931</td>\n",
  441. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col3\" class=\"data row9 col3\" >0.00520931</td>\n",
  442. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col4\" class=\"data row9 col4\" >0.00520931</td>\n",
  443. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col5\" class=\"data row9 col5\" >0.00520931</td>\n",
  444. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col6\" class=\"data row9 col6\" >0.00520931</td>\n",
  445. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col7\" class=\"data row9 col7\" >0.00520931</td>\n",
  446. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col8\" class=\"data row9 col8\" >0.00520931</td>\n",
  447. " <td id=\"T_d52896da_a47e_11e9_adde_acbc327d9ec5row9_col9\" class=\"data row9 col9\" >0.953116</td>\n",
  448. " </tr>\n",
  449. " </tbody></table>"
  450. ],
  451. "text/plain": [
  452. "<pandas.io.formats.style.Styler at 0x11c2e3da0>"
  453. ]
  454. },
  455. "execution_count": 17,
  456. "metadata": {},
  457. "output_type": "execute_result"
  458. }
  459. ],
  460. "source": [
  461. "res_indep = pd.DataFrame(clf_i.predict_proba(indep[features]))\n",
  462. "res_indep.style.apply(highlight_diag, axis=None)"
  463. ]
  464. },
  465. {
  466. "cell_type": "markdown",
  467. "metadata": {},
  468. "source": [
  469. "## Similar contexts\n",
  470. "\n",
  471. "Here, payments are very similar. Again we selected an action with probability $0.1$. "
  472. ]
  473. },
  474. {
  475. "cell_type": "code",
  476. "execution_count": 20,
  477. "metadata": {},
  478. "outputs": [
  479. {
  480. "data": {
  481. "text/html": [
  482. "<div>\n",
  483. "<style scoped>\n",
  484. " .dataframe tbody tr th:only-of-type {\n",
  485. " vertical-align: middle;\n",
  486. " }\n",
  487. "\n",
  488. " .dataframe tbody tr th {\n",
  489. " vertical-align: top;\n",
  490. " }\n",
  491. "\n",
  492. " .dataframe thead th {\n",
  493. " text-align: right;\n",
  494. " }\n",
  495. "</style>\n",
  496. "<table border=\"1\" class=\"dataframe\">\n",
  497. " <thead>\n",
  498. " <tr style=\"text-align: right;\">\n",
  499. " <th></th>\n",
  500. " <th>0</th>\n",
  501. " <th>1</th>\n",
  502. " <th>2</th>\n",
  503. " <th>3</th>\n",
  504. " <th>4</th>\n",
  505. " <th>5</th>\n",
  506. " <th>6</th>\n",
  507. " <th>7</th>\n",
  508. " <th>8</th>\n",
  509. " <th>9</th>\n",
  510. " <th>p</th>\n",
  511. " <th>action</th>\n",
  512. " </tr>\n",
  513. " </thead>\n",
  514. " <tbody>\n",
  515. " <tr>\n",
  516. " <th>0</th>\n",
  517. " <td>-0.019638</td>\n",
  518. " <td>1.101398</td>\n",
  519. " <td>1.970726</td>\n",
  520. " <td>3.060105</td>\n",
  521. " <td>3.943542</td>\n",
  522. " <td>5.039239</td>\n",
  523. " <td>5.973585</td>\n",
  524. " <td>7.095580</td>\n",
  525. " <td>7.913008</td>\n",
  526. " <td>9.008351</td>\n",
  527. " <td>0.1</td>\n",
  528. " <td>0</td>\n",
  529. " </tr>\n",
  530. " <tr>\n",
  531. " <th>1</th>\n",
  532. " <td>0.046163</td>\n",
  533. " <td>1.029280</td>\n",
  534. " <td>1.945301</td>\n",
  535. " <td>2.873129</td>\n",
  536. " <td>3.936393</td>\n",
  537. " <td>4.760869</td>\n",
  538. " <td>6.119820</td>\n",
  539. " <td>7.091753</td>\n",
  540. " <td>8.144356</td>\n",
  541. " <td>8.970392</td>\n",
  542. " <td>0.1</td>\n",
  543. " <td>1</td>\n",
  544. " </tr>\n",
  545. " <tr>\n",
  546. " <th>2</th>\n",
  547. " <td>0.040507</td>\n",
  548. " <td>1.056331</td>\n",
  549. " <td>2.035227</td>\n",
  550. " <td>3.176310</td>\n",
  551. " <td>4.018387</td>\n",
  552. " <td>4.960762</td>\n",
  553. " <td>6.047193</td>\n",
  554. " <td>7.097305</td>\n",
  555. " <td>8.023654</td>\n",
  556. " <td>8.994491</td>\n",
  557. " <td>0.1</td>\n",
  558. " <td>2</td>\n",
  559. " </tr>\n",
  560. " <tr>\n",
  561. " <th>3</th>\n",
  562. " <td>0.044263</td>\n",
  563. " <td>1.031390</td>\n",
  564. " <td>1.955717</td>\n",
  565. " <td>3.159275</td>\n",
  566. " <td>3.920521</td>\n",
  567. " <td>5.021060</td>\n",
  568. " <td>6.099058</td>\n",
  569. " <td>6.900178</td>\n",
  570. " <td>7.964618</td>\n",
  571. " <td>8.986417</td>\n",
  572. " <td>0.1</td>\n",
  573. " <td>3</td>\n",
  574. " </tr>\n",
  575. " <tr>\n",
  576. " <th>4</th>\n",
  577. " <td>0.066138</td>\n",
  578. " <td>0.965317</td>\n",
  579. " <td>1.955327</td>\n",
  580. " <td>2.869150</td>\n",
  581. " <td>3.909705</td>\n",
  582. " <td>5.068656</td>\n",
  583. " <td>6.124775</td>\n",
  584. " <td>6.912743</td>\n",
  585. " <td>7.911530</td>\n",
  586. " <td>9.086408</td>\n",
  587. " <td>0.1</td>\n",
  588. " <td>4</td>\n",
  589. " </tr>\n",
  590. " <tr>\n",
  591. " <th>5</th>\n",
  592. " <td>0.014419</td>\n",
  593. " <td>1.146377</td>\n",
  594. " <td>1.755929</td>\n",
  595. " <td>2.819008</td>\n",
  596. " <td>3.947550</td>\n",
  597. " <td>5.108242</td>\n",
  598. " <td>6.068107</td>\n",
  599. " <td>7.145113</td>\n",
  600. " <td>7.968077</td>\n",
  601. " <td>8.840765</td>\n",
  602. " <td>0.1</td>\n",
  603. " <td>5</td>\n",
  604. " </tr>\n",
  605. " <tr>\n",
  606. " <th>6</th>\n",
  607. " <td>-0.084084</td>\n",
  608. " <td>0.962701</td>\n",
  609. " <td>1.950143</td>\n",
  610. " <td>3.133109</td>\n",
  611. " <td>4.178577</td>\n",
  612. " <td>4.788086</td>\n",
  613. " <td>6.133167</td>\n",
  614. " <td>7.094141</td>\n",
  615. " <td>7.891503</td>\n",
  616. " <td>8.989802</td>\n",
  617. " <td>0.1</td>\n",
  618. " <td>6</td>\n",
  619. " </tr>\n",
  620. " <tr>\n",
  621. " <th>7</th>\n",
  622. " <td>-0.021402</td>\n",
  623. " <td>1.063880</td>\n",
  624. " <td>1.940584</td>\n",
  625. " <td>2.991705</td>\n",
  626. " <td>3.838835</td>\n",
  627. " <td>4.887974</td>\n",
  628. " <td>6.188056</td>\n",
  629. " <td>7.054795</td>\n",
  630. " <td>7.927418</td>\n",
  631. " <td>8.969443</td>\n",
  632. " <td>0.1</td>\n",
  633. " <td>7</td>\n",
  634. " </tr>\n",
  635. " <tr>\n",
  636. " <th>8</th>\n",
  637. " <td>-0.219896</td>\n",
  638. " <td>0.964580</td>\n",
  639. " <td>2.057829</td>\n",
  640. " <td>3.125574</td>\n",
  641. " <td>4.133694</td>\n",
  642. " <td>5.093212</td>\n",
  643. " <td>5.925061</td>\n",
  644. " <td>7.008290</td>\n",
  645. " <td>8.031325</td>\n",
  646. " <td>8.881888</td>\n",
  647. " <td>0.1</td>\n",
  648. " <td>8</td>\n",
  649. " </tr>\n",
  650. " <tr>\n",
  651. " <th>9</th>\n",
  652. " <td>-0.078689</td>\n",
  653. " <td>0.930086</td>\n",
  654. " <td>1.926375</td>\n",
  655. " <td>3.016457</td>\n",
  656. " <td>4.028586</td>\n",
  657. " <td>4.936445</td>\n",
  658. " <td>6.079576</td>\n",
  659. " <td>6.894052</td>\n",
  660. " <td>8.103722</td>\n",
  661. " <td>9.141645</td>\n",
  662. " <td>0.1</td>\n",
  663. " <td>9</td>\n",
  664. " </tr>\n",
  665. " </tbody>\n",
  666. "</table>\n",
  667. "</div>"
  668. ],
  669. "text/plain": [
  670. " 0 1 2 3 4 5 6 \\\n",
  671. "0 -0.019638 1.101398 1.970726 3.060105 3.943542 5.039239 5.973585 \n",
  672. "1 0.046163 1.029280 1.945301 2.873129 3.936393 4.760869 6.119820 \n",
  673. "2 0.040507 1.056331 2.035227 3.176310 4.018387 4.960762 6.047193 \n",
  674. "3 0.044263 1.031390 1.955717 3.159275 3.920521 5.021060 6.099058 \n",
  675. "4 0.066138 0.965317 1.955327 2.869150 3.909705 5.068656 6.124775 \n",
  676. "5 0.014419 1.146377 1.755929 2.819008 3.947550 5.108242 6.068107 \n",
  677. "6 -0.084084 0.962701 1.950143 3.133109 4.178577 4.788086 6.133167 \n",
  678. "7 -0.021402 1.063880 1.940584 2.991705 3.838835 4.887974 6.188056 \n",
  679. "8 -0.219896 0.964580 2.057829 3.125574 4.133694 5.093212 5.925061 \n",
  680. "9 -0.078689 0.930086 1.926375 3.016457 4.028586 4.936445 6.079576 \n",
  681. "\n",
  682. " 7 8 9 p action \n",
  683. "0 7.095580 7.913008 9.008351 0.1 0 \n",
  684. "1 7.091753 8.144356 8.970392 0.1 1 \n",
  685. "2 7.097305 8.023654 8.994491 0.1 2 \n",
  686. "3 6.900178 7.964618 8.986417 0.1 3 \n",
  687. "4 6.912743 7.911530 9.086408 0.1 4 \n",
  688. "5 7.145113 7.968077 8.840765 0.1 5 \n",
  689. "6 7.094141 7.891503 8.989802 0.1 6 \n",
  690. "7 7.054795 7.927418 8.969443 0.1 7 \n",
  691. "8 7.008290 8.031325 8.881888 0.1 8 \n",
  692. "9 6.894052 8.103722 9.141645 0.1 9 "
  693. ]
  694. },
  695. "execution_count": 20,
  696. "metadata": {},
  697. "output_type": "execute_result"
  698. }
  699. ],
  700. "source": [
  701. "dep = pd.DataFrame([[np.random.normal(i,0.1) for i in range(10)] for _ in range(10)]).assign(p=np.repeat([0.1],10)).assign(action=np.arange(10))\n",
  702. "dep"
  703. ]
  704. },
  705. {
  706. "cell_type": "markdown",
  707. "metadata": {},
  708. "source": [
  709. "When we try to predict the action we find, indeed, that the action was chosen with $p \\approx 0.1$. Hence, we had full exploration over all actions."
  710. ]
  711. },
  712. {
  713. "cell_type": "code",
  714. "execution_count": 21,
  715. "metadata": {},
  716. "outputs": [],
  717. "source": [
  718. "clf_d = LogisticRegression(multi_class='multinomial', max_iter=1000, solver='lbfgs').fit(dep[features], dep['action'])"
  719. ]
  720. },
  721. {
  722. "cell_type": "code",
  723. "execution_count": 22,
  724. "metadata": {},
  725. "outputs": [
  726. {
  727. "data": {
  728. "text/html": [
  729. "<style type=\"text/css\" >\n",
  730. " #T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col0 {\n",
  731. " font-weight: bold;\n",
  732. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col1 {\n",
  733. " font-weight: bold;\n",
  734. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col2 {\n",
  735. " font-weight: bold;\n",
  736. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col3 {\n",
  737. " font-weight: bold;\n",
  738. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col4 {\n",
  739. " font-weight: bold;\n",
  740. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col5 {\n",
  741. " font-weight: bold;\n",
  742. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col6 {\n",
  743. " font-weight: bold;\n",
  744. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col7 {\n",
  745. " font-weight: bold;\n",
  746. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col8 {\n",
  747. " font-weight: bold;\n",
  748. " } #T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col9 {\n",
  749. " font-weight: bold;\n",
  750. " }</style><table id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5\" ><thead> <tr> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >0</th> <th class=\"col_heading level0 col1\" >1</th> <th class=\"col_heading level0 col2\" >2</th> <th class=\"col_heading level0 col3\" >3</th> <th class=\"col_heading level0 col4\" >4</th> <th class=\"col_heading level0 col5\" >5</th> <th class=\"col_heading level0 col6\" >6</th> <th class=\"col_heading level0 col7\" >7</th> <th class=\"col_heading level0 col8\" >8</th> <th class=\"col_heading level0 col9\" >9</th> </tr></thead><tbody>\n",
  751. " <tr>\n",
  752. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
  753. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col0\" class=\"data row0 col0\" >0.103625</td>\n",
  754. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col1\" class=\"data row0 col1\" >0.0970025</td>\n",
  755. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col2\" class=\"data row0 col2\" >0.101343</td>\n",
  756. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col3\" class=\"data row0 col3\" >0.100356</td>\n",
  757. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col4\" class=\"data row0 col4\" >0.0995631</td>\n",
  758. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col5\" class=\"data row0 col5\" >0.101483</td>\n",
  759. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col6\" class=\"data row0 col6\" >0.0983964</td>\n",
  760. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col7\" class=\"data row0 col7\" >0.0996726</td>\n",
  761. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col8\" class=\"data row0 col8\" >0.101153</td>\n",
  762. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row0_col9\" class=\"data row0 col9\" >0.0974051</td>\n",
  763. " </tr>\n",
  764. " <tr>\n",
  765. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
  766. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col0\" class=\"data row1 col0\" >0.0970011</td>\n",
  767. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col1\" class=\"data row1 col1\" >0.110443</td>\n",
  768. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col2\" class=\"data row1 col2\" >0.0989016</td>\n",
  769. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col3\" class=\"data row1 col3\" >0.0966027</td>\n",
  770. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col4\" class=\"data row1 col4\" >0.0991522</td>\n",
  771. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col5\" class=\"data row1 col5\" >0.101063</td>\n",
  772. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col6\" class=\"data row1 col6\" >0.0996683</td>\n",
  773. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col7\" class=\"data row1 col7\" >0.102454</td>\n",
  774. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col8\" class=\"data row1 col8\" >0.0939732</td>\n",
  775. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row1_col9\" class=\"data row1 col9\" >0.100741</td>\n",
  776. " </tr>\n",
  777. " <tr>\n",
  778. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
  779. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col0\" class=\"data row2 col0\" >0.101342</td>\n",
  780. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col1\" class=\"data row2 col1\" >0.0989006</td>\n",
  781. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col2\" class=\"data row2 col2\" >0.104421</td>\n",
  782. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col3\" class=\"data row2 col3\" >0.101319</td>\n",
  783. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col4\" class=\"data row2 col4\" >0.0967077</td>\n",
  784. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col5\" class=\"data row2 col5\" >0.096274</td>\n",
  785. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col6\" class=\"data row2 col6\" >0.1017</td>\n",
  786. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col7\" class=\"data row2 col7\" >0.0988036</td>\n",
  787. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col8\" class=\"data row2 col8\" >0.101713</td>\n",
  788. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row2_col9\" class=\"data row2 col9\" >0.0988196</td>\n",
  789. " </tr>\n",
  790. " <tr>\n",
  791. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
  792. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col0\" class=\"data row3 col0\" >0.100355</td>\n",
  793. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col1\" class=\"data row3 col1\" >0.0966034</td>\n",
  794. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col2\" class=\"data row3 col2\" >0.101319</td>\n",
  795. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col3\" class=\"data row3 col3\" >0.104893</td>\n",
  796. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col4\" class=\"data row3 col4\" >0.101252</td>\n",
  797. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col5\" class=\"data row3 col5\" >0.0969554</td>\n",
  798. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col6\" class=\"data row3 col6\" >0.0983404</td>\n",
  799. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col7\" class=\"data row3 col7\" >0.100217</td>\n",
  800. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col8\" class=\"data row3 col8\" >0.0995796</td>\n",
  801. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row3_col9\" class=\"data row3 col9\" >0.100485</td>\n",
  802. " </tr>\n",
  803. " <tr>\n",
  804. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
  805. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col0\" class=\"data row4 col0\" >0.099562</td>\n",
  806. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col1\" class=\"data row4 col1\" >0.0991514</td>\n",
  807. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col2\" class=\"data row4 col2\" >0.0967072</td>\n",
  808. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col3\" class=\"data row4 col3\" >0.101252</td>\n",
  809. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col4\" class=\"data row4 col4\" >0.108405</td>\n",
  810. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col5\" class=\"data row4 col5\" >0.101408</td>\n",
  811. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col6\" class=\"data row4 col6\" >0.0952793</td>\n",
  812. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col7\" class=\"data row4 col7\" >0.101017</td>\n",
  813. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col8\" class=\"data row4 col8\" >0.0955005</td>\n",
  814. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row4_col9\" class=\"data row4 col9\" >0.101716</td>\n",
  815. " </tr>\n",
  816. " <tr>\n",
  817. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
  818. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col0\" class=\"data row5 col0\" >0.101485</td>\n",
  819. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col1\" class=\"data row5 col1\" >0.101066</td>\n",
  820. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col2\" class=\"data row5 col2\" >0.0962723</td>\n",
  821. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col3\" class=\"data row5 col3\" >0.0969542</td>\n",
  822. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col4\" class=\"data row5 col4\" >0.101412</td>\n",
  823. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col5\" class=\"data row5 col5\" >0.115667</td>\n",
  824. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col6\" class=\"data row5 col6\" >0.0944857</td>\n",
  825. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col7\" class=\"data row5 col7\" >0.101108</td>\n",
  826. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col8\" class=\"data row5 col8\" >0.0968592</td>\n",
  827. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row5_col9\" class=\"data row5 col9\" >0.0946899</td>\n",
  828. " </tr>\n",
  829. " <tr>\n",
  830. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
  831. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col0\" class=\"data row6 col0\" >0.0983959</td>\n",
  832. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col1\" class=\"data row6 col1\" >0.0996682</td>\n",
  833. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col2\" class=\"data row6 col2\" >0.101701</td>\n",
  834. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col3\" class=\"data row6 col3\" >0.0983407</td>\n",
  835. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col4\" class=\"data row6 col4\" >0.095279</td>\n",
  836. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col5\" class=\"data row6 col5\" >0.0944882</td>\n",
  837. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col6\" class=\"data row6 col6\" >0.110855</td>\n",
  838. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col7\" class=\"data row6 col7\" >0.099358</td>\n",
  839. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col8\" class=\"data row6 col8\" >0.101682</td>\n",
  840. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row6_col9\" class=\"data row6 col9\" >0.100231</td>\n",
  841. " </tr>\n",
  842. " <tr>\n",
  843. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
  844. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col0\" class=\"data row7 col0\" >0.0996721</td>\n",
  845. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col1\" class=\"data row7 col1\" >0.102453</td>\n",
  846. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col2\" class=\"data row7 col2\" >0.0988043</td>\n",
  847. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col3\" class=\"data row7 col3\" >0.100217</td>\n",
  848. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col4\" class=\"data row7 col4\" >0.101017</td>\n",
  849. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col5\" class=\"data row7 col5\" >0.101105</td>\n",
  850. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col6\" class=\"data row7 col6\" >0.0993578</td>\n",
  851. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col7\" class=\"data row7 col7\" >0.104786</td>\n",
  852. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col8\" class=\"data row7 col8\" >0.0945459</td>\n",
  853. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row7_col9\" class=\"data row7 col9\" >0.0980403</td>\n",
  854. " </tr>\n",
  855. " <tr>\n",
  856. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
  857. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col0\" class=\"data row8 col0\" >0.101154</td>\n",
  858. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col1\" class=\"data row8 col1\" >0.0939705</td>\n",
  859. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col2\" class=\"data row8 col2\" >0.101716</td>\n",
  860. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col3\" class=\"data row8 col3\" >0.0995804</td>\n",
  861. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col4\" class=\"data row8 col4\" >0.095498</td>\n",
  862. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col5\" class=\"data row8 col5\" >0.0968587</td>\n",
  863. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col6\" class=\"data row8 col6\" >0.101683</td>\n",
  864. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col7\" class=\"data row8 col7\" >0.0945415</td>\n",
  865. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col8\" class=\"data row8 col8\" >0.114374</td>\n",
  866. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row8_col9\" class=\"data row8 col9\" >0.100623</td>\n",
  867. " </tr>\n",
  868. " <tr>\n",
  869. " <th id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
  870. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col0\" class=\"data row9 col0\" >0.097403</td>\n",
  871. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col1\" class=\"data row9 col1\" >0.100739</td>\n",
  872. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col2\" class=\"data row9 col2\" >0.0988185</td>\n",
  873. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col3\" class=\"data row9 col3\" >0.100484</td>\n",
  874. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col4\" class=\"data row9 col4\" >0.101716</td>\n",
  875. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col5\" class=\"data row9 col5\" >0.0946925</td>\n",
  876. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col6\" class=\"data row9 col6\" >0.100229</td>\n",
  877. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col7\" class=\"data row9 col7\" >0.0980389</td>\n",
  878. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col8\" class=\"data row9 col8\" >0.10062</td>\n",
  879. " <td id=\"T_f2565382_a47e_11e9_adde_acbc327d9ec5row9_col9\" class=\"data row9 col9\" >0.107259</td>\n",
  880. " </tr>\n",
  881. " </tbody></table>"
  882. ],
  883. "text/plain": [
  884. "<pandas.io.formats.style.Styler at 0x11c2b8e48>"
  885. ]
  886. },
  887. "execution_count": 22,
  888. "metadata": {},
  889. "output_type": "execute_result"
  890. }
  891. ],
  892. "source": [
  893. "res_dep = pd.DataFrame(clf_d.predict_proba(dep[features]))\n",
  894. "res_dep.style.apply(highlight_diag, axis=None)"
  895. ]
  896. }
  897. ],
  898. "metadata": {
  899. "kernelspec": {
  900. "display_name": "Python 3",
  901. "language": "python",
  902. "name": "python3"
  903. },
  904. "language_info": {
  905. "codemirror_mode": {
  906. "name": "ipython",
  907. "version": 3
  908. },
  909. "file_extension": ".py",
  910. "mimetype": "text/x-python",
  911. "name": "python",
  912. "nbconvert_exporter": "python",
  913. "pygments_lexer": "ipython3",
  914. "version": "3.7.2"
  915. }
  916. },
  917. "nbformat": 4,
  918. "nbformat_minor": 2
  919. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement