Blame view

Untitled.ipynb 27.5 KB
b6d0165d1   Killian   Initial commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
  {
   "cells": [
    {
     "cell_type": "code",
     "execution_count": 2,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "import shelve
  ",
      "import numpy
  ",
      "import pandas
  ",
      "import sklearn.manifold
  ",
      "import matplotlib.pyplot as plt"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 3,
     "metadata": {
      "collapsed": true
     },
     "outputs": [],
     "source": [
      "%matplotlib inline"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 4,
     "metadata": {
      "collapsed": true
     },
     "outputs": [],
     "source": [
      "data=shelve.open(\"./Sparse_mat.shelve\")"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 5,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "array_test=data[\"ASR\"][\"DEV\"].toarray()"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 6,
     "metadata": {
      "collapsed": false
     },
     "outputs": [
      {
       "data": {
        "text/plain": [
         "(175, 1060)"
        ]
       },
       "execution_count": 6,
       "metadata": {},
       "output_type": "execute_result"
      }
     ],
     "source": [
      "array_test.shape"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 7,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "max_list=numpy.max(array_test,axis=1)"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 8,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "a=pandas.DataFrame([numpy.divide(x,numpy.float(max(x))) for x in array_test])"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 9,
     "metadata": {
      "collapsed": false
     },
     "outputs": [
      {
       "data": {
        "text/html": [
         "<div>
  ",
         "<table border=\"1\" class=\"dataframe\">
  ",
         "  <thead>
  ",
         "    <tr style=\"text-align: right;\">
  ",
         "      <th></th>
  ",
         "      <th>0</th>
  ",
         "      <th>1</th>
  ",
         "      <th>2</th>
  ",
         "      <th>3</th>
  ",
         "      <th>4</th>
  ",
         "      <th>5</th>
  ",
         "      <th>6</th>
  ",
         "      <th>7</th>
  ",
         "      <th>8</th>
  ",
         "      <th>9</th>
  ",
         "      <th>...</th>
  ",
         "      <th>1050</th>
  ",
         "      <th>1051</th>
  ",
         "      <th>1052</th>
  ",
         "      <th>1053</th>
  ",
         "      <th>1054</th>
  ",
         "      <th>1055</th>
  ",
         "      <th>1056</th>
  ",
         "      <th>1057</th>
  ",
         "      <th>1058</th>
  ",
         "      <th>1059</th>
  ",
         "    </tr>
  ",
         "  </thead>
  ",
         "  <tbody>
  ",
         "    <tr>
  ",
         "      <th>0</th>
  ",
         "      <td>1.000000</td>
  ",
         "      <td>0.700000</td>
  ",
         "      <td>0.100000</td>
  ",
         "      <td>0.1</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0.100000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>...</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "    </tr>
  ",
         "    <tr>
  ",
         "      <th>1</th>
  ",
         "      <td>0.500000</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0.250000</td>
  ",
         "      <td>0.0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>...</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "    </tr>
  ",
         "    <tr>
  ",
         "      <th>2</th>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0.500000</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>1.0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>...</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "    </tr>
  ",
         "    <tr>
  ",
         "      <th>3</th>
  ",
         "      <td>0.333333</td>
  ",
         "      <td>0.166667</td>
  ",
         "      <td>0.666667</td>
  ",
         "      <td>0.0</td>
  ",
         "      <td>0.333333</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0.333333</td>
  ",
         "      <td>0</td>
  ",
         "      <td>...</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "    </tr>
  ",
         "    <tr>
  ",
         "      <th>4</th>
  ",
         "      <td>0.500000</td>
  ",
         "      <td>0.500000</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0.0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0.000000</td>
  ",
         "      <td>0</td>
  ",
         "      <td>...</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "      <td>0</td>
  ",
         "    </tr>
  ",
         "  </tbody>
  ",
         "</table>
  ",
         "<p>5 rows × 1060 columns</p>
  ",
         "</div>"
        ],
        "text/plain": [
         "       0         1         2     3         4     5     6     7         8     \\
  ",
         "0  1.000000  0.700000  0.100000   0.1  0.000000     0     0     0  0.100000   
  ",
         "1  0.500000  0.000000  0.250000   0.0  0.000000     0     0     0  0.000000   
  ",
         "2  0.000000  0.500000  0.000000   1.0  0.000000     0     0     0  0.000000   
  ",
         "3  0.333333  0.166667  0.666667   0.0  0.333333     0     0     0  0.333333   
  ",
         "4  0.500000  0.500000  0.000000   0.0  0.000000     0     0     0  0.000000   
  ",
         "
  ",
         "   9     ...   1050  1051  1052  1053  1054  1055  1056  1057  1058  1059  
  ",
         "0     0  ...      0     0     0     0     0     0     0     0     0     0  
  ",
         "1     0  ...      0     0     0     0     0     0     0     0     0     0  
  ",
         "2     0  ...      0     0     0     0     0     0     0     0     0     0  
  ",
         "3     0  ...      0     0     0     0     0     0     0     0     0     0  
  ",
         "4     0  ...      0     0     0     0     0     0     0     0     0     0  
  ",
         "
  ",
         "[5 rows x 1060 columns]"
        ]
       },
       "execution_count": 9,
       "metadata": {},
       "output_type": "execute_result"
      }
     ],
     "source": [
      "a.head()"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 16,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "trans=sklearn.manifold.TSNE()"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 17,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "tsne=trans.fit_transform(a.values)"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 18,
     "metadata": {
      "collapsed": false
     },
     "outputs": [
      {
       "data": {
        "text/plain": [
         "<matplotlib.collections.PathCollection at 0x7f0e612a9e90>"
        ]
       },
       "execution_count": 18,
       "metadata": {},
       "output_type": "execute_result"
      },
      {
       "data": {
        "image/png": "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
  AABJRU5ErkJggg==
  ",
        "text/plain": [
         "<matplotlib.figure.Figure at 0x7f0e613b0fd0>"
        ]
       },
       "metadata": {},
       "output_type": "display_data"
      }
     ],
     "source": [
      "plt.scatter([x[0] for x in tsne],[y[1] for y in tsne])"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 19,
     "metadata": {
      "collapsed": true
     },
     "outputs": [],
     "source": [
      "plt.show()"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 20,
     "metadata": {
      "collapsed": false
     },
     "outputs": [
      {
       "ename": "NameError",
       "evalue": "name 'title' is not defined",
       "output_type": "error",
       "traceback": [
        "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
        "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
        "\u001b[1;32m<ipython-input-20-7cea0497790c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m
  \u001b[0;32m      1\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m
  \u001b[0;32m      2\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m
  \u001b[1;32m----> 3\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitle\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m
  \u001b[0m",
        "\u001b[1;31mNameError\u001b[0m: name 'title' is not defined"
       ]
      },
      {
       "data": {
        "image/png": "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
  SWrMyEtSY/8LkDqzw0fZnlYAAAAASUVORK5CYII=
  ",
        "text/plain": [
         "<matplotlib.figure.Figure at 0x7f0e612bef50>"
        ]
       },
       "metadata": {},
       "output_type": "display_data"
      }
     ],
     "source": [
      "plt.figure()
  ",
      "plt.axes()
  ",
      "plt.title(title)
  "
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "for i,pos in enumerate(zip([x[0] for x in tsne],[y[1] for y in tsne])):
  ",
      "    plt.text(pos[0],pos[1],i)
  ",
      "    if i > 30:
  ",
      "        break"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
      "enumerate(zip([x[0] for x in tsne],[y[1] for y in tsne])).next()"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "collapsed": true
     },
     "outputs": [],
     "source": [
      "plt.axes()"
     ]
    }
   ],
   "metadata": {
    "kernelspec": {
     "display_name": "Python 2",
     "language": "python",
     "name": "python2"
    },
    "language_info": {
     "codemirror_mode": {
      "name": "ipython",
      "version": 2
     },
     "file_extension": ".py",
     "mimetype": "text/x-python",
     "name": "python",
     "nbconvert_exporter": "python",
     "pygments_lexer": "ipython2",
     "version": "2.7.10"
    }
   },
   "nbformat": 4,
   "nbformat_minor": 0
  }