|
34 | 34 | }, |
35 | 35 | { |
36 | 36 | "cell_type": "code", |
37 | | - "execution_count": 153, |
| 37 | + "execution_count": 2, |
38 | 38 | "id": "aeaa3bba", |
39 | 39 | "metadata": {}, |
40 | 40 | "outputs": [ |
|
240 | 240 | "[5 rows x 785 columns]" |
241 | 241 | ] |
242 | 242 | }, |
243 | | - "execution_count": 153, |
| 243 | + "execution_count": 2, |
244 | 244 | "metadata": {}, |
245 | 245 | "output_type": "execute_result" |
246 | 246 | } |
|
257 | 257 | }, |
258 | 258 | { |
259 | 259 | "cell_type": "code", |
260 | | - "execution_count": 5, |
| 260 | + "execution_count": 3, |
261 | 261 | "id": "6c91a3f5", |
262 | 262 | "metadata": {}, |
263 | 263 | "outputs": [ |
|
324 | 324 | }, |
325 | 325 | { |
326 | 326 | "cell_type": "code", |
327 | | - "execution_count": 1, |
| 327 | + "execution_count": 4, |
328 | 328 | "id": "26597be5", |
329 | 329 | "metadata": {}, |
330 | 330 | "outputs": [], |
|
336 | 336 | }, |
337 | 337 | { |
338 | 338 | "cell_type": "code", |
339 | | - "execution_count": 141, |
| 339 | + "execution_count": 5, |
340 | 340 | "id": "a1f43228", |
341 | 341 | "metadata": {}, |
342 | 342 | "outputs": [ |
|
346 | 346 | "(5000, 785)" |
347 | 347 | ] |
348 | 348 | }, |
349 | | - "execution_count": 141, |
| 349 | + "execution_count": 5, |
350 | 350 | "metadata": {}, |
351 | 351 | "output_type": "execute_result" |
352 | 352 | } |
|
361 | 361 | }, |
362 | 362 | { |
363 | 363 | "cell_type": "code", |
364 | | - "execution_count": 142, |
| 364 | + "execution_count": 10, |
365 | 365 | "id": "fa042365", |
366 | 366 | "metadata": {}, |
367 | 367 | "outputs": [], |
368 | 368 | "source": [ |
369 | | - "def gradDesc(theta,x,y,m):\n", |
| 369 | + "def gradDesc(theta,x,y,m,lambda_):\n", |
370 | 370 | " h = sigmoid(x*theta)\n", |
371 | 371 | " grad = np.transpose(x)*(h-np.transpose(y))\n", |
| 372 | + " grad[1:,:] = grad[1:,:] + (lambda_/m)*theta[1:,:]\n", |
372 | 373 | " return grad/m\n", |
373 | 374 | "\n", |
374 | | - "def oneVall(x,y,alpha,itr):\n", |
| 375 | + "def oneVall(x,y,alpha,itr,lambda_):\n", |
375 | 376 | " m,n = x.shape\n", |
376 | 377 | " theta = np.transpose(np.matrix(np.zeros(n)))\n", |
377 | 378 | " x = np.matrix(x)\n", |
378 | 379 | " y = np.matrix(y)\n", |
379 | 380 | " for i in range(itr):\n", |
380 | | - " theta = theta - alpha*gradDesc(theta,x,y,m)\n", |
| 381 | + " theta = theta - alpha*gradDesc(theta,x,y,m,lambda_)\n", |
381 | 382 | " return np.array(np.transpose(theta))" |
382 | 383 | ] |
383 | 384 | }, |
384 | 385 | { |
385 | 386 | "cell_type": "code", |
386 | | - "execution_count": 147, |
| 387 | + "execution_count": 15, |
387 | 388 | "id": "d31d0b48", |
388 | 389 | "metadata": {}, |
389 | 390 | "outputs": [], |
390 | 391 | "source": [ |
391 | 392 | "all_theta = np.array([np.zeros(785)])\n", |
392 | 393 | "for j in range(num_labels):\n", |
393 | 394 | " yIn = (y == j).astype(int)\n", |
394 | | - " temp = oneVall(x,yIn,0.00000001,1000)\n", |
| 395 | + " temp = oneVall(x,yIn,0.00000001,1000,100)\n", |
395 | 396 | " all_theta = np.append(all_theta, temp, axis=0)\n", |
396 | 397 | " #all_theta = np.vstack([all_theta,temp])\n", |
397 | 398 | "all_theta.shape\n", |
|
400 | 401 | }, |
401 | 402 | { |
402 | 403 | "cell_type": "code", |
403 | | - "execution_count": 154, |
| 404 | + "execution_count": 16, |
404 | 405 | "id": "1b610409", |
405 | 406 | "metadata": {}, |
406 | 407 | "outputs": [ |
|
433 | 434 | }, |
434 | 435 | { |
435 | 436 | "cell_type": "code", |
436 | | - "execution_count": 163, |
| 437 | + "execution_count": 17, |
437 | 438 | "id": "37e5c59c", |
438 | 439 | "metadata": {}, |
439 | 440 | "outputs": [], |
|
443 | 444 | }, |
444 | 445 | { |
445 | 446 | "cell_type": "code", |
446 | | - "execution_count": 164, |
| 447 | + "execution_count": 18, |
447 | 448 | "id": "fbb3bb20", |
448 | 449 | "metadata": {}, |
449 | 450 | "outputs": [ |
|
0 commit comments