change exemplar finding

This commit is contained in:
Ritchie 2018-05-18 15:35:06 +02:00
parent 7e29d4aee8
commit 8ea2d99e0b

View File

@ -42,8 +42,6 @@
"x = np.random.normal(0, 1, size)\n", "x = np.random.normal(0, 1, size)\n",
"x = np.append(x, np.random.normal(5, 1, size), axis=0)\n", "x = np.append(x, np.random.normal(5, 1, size), axis=0)\n",
"\n", "\n",
"# x = StandardScaler().fit_transform(x)\n",
"\n",
"c = ['r' for _ in range(n)] + ['b' for _ in range(n)]\n", "c = ['r' for _ in range(n)] + ['b' for _ in range(n)]\n",
"plt.scatter(x[:, 0], x[:, 1], c=c)\n", "plt.scatter(x[:, 0], x[:, 1], c=c)\n",
"plt.show()" "plt.show()"
@ -125,6 +123,16 @@
" R = R * lmda + (1 - lmda) * new_val" " R = R * lmda + (1 - lmda) * new_val"
] ]
}, },
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"A, R, S = create_matrices()\n",
"\n",
"%timeit update_r(slow=False)"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
@ -192,9 +200,8 @@
"def plot_iteration(A, R):\n", "def plot_iteration(A, R):\n",
" fig = plt.figure(figsize=(12, 6))\n", " fig = plt.figure(figsize=(12, 6))\n",
" sol = A + R\n", " sol = A + R\n",
" labels = []\n", " \n",
" for i in range(x.shape[0]):\n", " labels = np.argmax(sol, axis=1)\n",
" labels.append(np.argmax(sol[i]))\n",
"\n", "\n",
" exemplars = np.unique(labels)\n", " exemplars = np.unique(labels)\n",
" colors = dict(zip(exemplars, cycle('bgrcmyk')))\n", " colors = dict(zip(exemplars, cycle('bgrcmyk')))\n",
@ -220,6 +227,14 @@
" \n" " \n"
] ]
}, },
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"np.median(S)"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"metadata": { "metadata": {
@ -230,6 +245,7 @@
"%%time\n", "%%time\n",
"A, R, S = create_matrices()\n", "A, R, S = create_matrices()\n",
"preference = np.median(S)\n", "preference = np.median(S)\n",
"preference = -1000\n",
"\n", "\n",
"np.fill_diagonal(S, preference)\n", "np.fill_diagonal(S, preference)\n",
"damping = 0.5\n", "damping = 0.5\n",