File size: 124,560 Bytes
0b793e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "#Ingestar"
      ],
      "metadata": {
        "id": "bxywqp3f4tjI"
      }
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 363
        },
        "id": "8sCMBdls22X8",
        "outputId": "160aa2dd-f88a-403c-e39d-5d346d621812"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                    Bakery  Floor space of the shop  \\\n",
              "0          Yumenoooka Shop                       10   \n",
              "1       Terai Station Shop                        8   \n",
              "2                Sone Shop                        8   \n",
              "3   Hashimoto Station Shop                        5   \n",
              "4         Kikyou Town Shop                        7   \n",
              "5         Post Office Shop                        8   \n",
              "6  Suidobashi Station Shop                        7   \n",
              "7      Rokujo Station Shop                        9   \n",
              "8    Wakaba Riverside Shop                        6   \n",
              "9              Misato Shop                        9   \n",
              "\n",
              "   Distance to the nearest station  Monthly sales  \n",
              "0                               80            469  \n",
              "1                                0            366  \n",
              "2                              200            371  \n",
              "3                              200            208  \n",
              "4                              300            246  \n",
              "5                              230            297  \n",
              "6                               40            363  \n",
              "7                                0            436  \n",
              "8                              330            198  \n",
              "9                              180            364  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-9e24b220-baec-4942-9a18-06222fc6a1c0\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Bakery</th>\n",
              "      <th>Floor space of the shop</th>\n",
              "      <th>Distance to the nearest station</th>\n",
              "      <th>Monthly sales</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Yumenoooka Shop</td>\n",
              "      <td>10</td>\n",
              "      <td>80</td>\n",
              "      <td>469</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Terai Station Shop</td>\n",
              "      <td>8</td>\n",
              "      <td>0</td>\n",
              "      <td>366</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Sone Shop</td>\n",
              "      <td>8</td>\n",
              "      <td>200</td>\n",
              "      <td>371</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Hashimoto Station Shop</td>\n",
              "      <td>5</td>\n",
              "      <td>200</td>\n",
              "      <td>208</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>Kikyou Town Shop</td>\n",
              "      <td>7</td>\n",
              "      <td>300</td>\n",
              "      <td>246</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>Post Office Shop</td>\n",
              "      <td>8</td>\n",
              "      <td>230</td>\n",
              "      <td>297</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>Suidobashi Station Shop</td>\n",
              "      <td>7</td>\n",
              "      <td>40</td>\n",
              "      <td>363</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>Rokujo Station Shop</td>\n",
              "      <td>9</td>\n",
              "      <td>0</td>\n",
              "      <td>436</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>Wakaba Riverside Shop</td>\n",
              "      <td>6</td>\n",
              "      <td>330</td>\n",
              "      <td>198</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>Misato Shop</td>\n",
              "      <td>9</td>\n",
              "      <td>180</td>\n",
              "      <td>364</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9e24b220-baec-4942-9a18-06222fc6a1c0')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-9e24b220-baec-4942-9a18-06222fc6a1c0 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-9e24b220-baec-4942-9a18-06222fc6a1c0');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-4764a0a2-39a6-4a8b-b813-efd15e84f311\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4764a0a2-39a6-4a8b-b813-efd15e84f311')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-4764a0a2-39a6-4a8b-b813-efd15e84f311 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df",
              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"Bakery\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"Wakaba Riverside Shop\",\n          \"Terai Station Shop\",\n          \"Post Office Shop\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Floor space of the shop\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 5,\n        \"max\": 10,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          10,\n          8,\n          6\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Distance to the nearest station\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 119,\n        \"min\": 0,\n        \"max\": 330,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0,\n          40,\n          80\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Monthly sales\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 92,\n        \"min\": 198,\n        \"max\": 469,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          198,\n          366,\n          297\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 1
        }
      ],
      "source": [
        "\n",
        "import pandas as pd\n",
        "\n",
        "df = pd.read_csv('panaderias.csv')\n",
        "\n",
        "df.head(10)\n"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#An谩lisis exploratorio de datos"
      ],
      "metadata": {
        "id": "YefPo3If4zUx"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#analisis exploratorio de datos sobre el dataframe df\n",
        "\n",
        "df= df.drop(columns=['Bakery'])\n",
        "\n",
        "# Resumen estad铆stico de las variables num茅ricas\n",
        "print(df.describe())\n",
        "\n",
        "# Informaci贸n sobre el dataframe, incluyendo tipos de datos y valores no nulos\n",
        "print(df.info())\n",
        "\n",
        "# N煤mero de valores 煤nicos en cada columna\n",
        "print(df.nunique())\n",
        "\n",
        "# Verificar valores faltantes\n",
        "print(df.isnull().sum())\n",
        "\n",
        "# Histograma de una variable num茅rica (reemplaza 'nombre_columna' con el nombre de la columna)\n",
        "df['Distance to the nearest station'].hist()\n",
        "\n",
        "# Gr谩fico de dispersi贸n entre dos variables num茅ricas (reemplaza 'columna1' y 'columna2')\n",
        "df.plot.scatter(x='Distance to the nearest station', y='Monthly sales')\n",
        "\n",
        "\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "ef07c1-03NIw",
        "outputId": "89451c13-25c1-4177-dbb4-4c276e47cf7e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "       Floor space of the shop  Distance to the nearest station  Monthly sales\n",
            "count                10.000000                        10.000000       10.00000\n",
            "mean                  7.700000                       156.000000      331.80000\n",
            "std                   1.494434                       119.647631       92.01425\n",
            "min                   5.000000                         0.000000      198.00000\n",
            "25%                   7.000000                        50.000000      258.75000\n",
            "50%                   8.000000                       190.000000      363.50000\n",
            "75%                   8.750000                       222.500000      369.75000\n",
            "max                  10.000000                       330.000000      469.00000\n",
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 10 entries, 0 to 9\n",
            "Data columns (total 3 columns):\n",
            " #   Column                           Non-Null Count  Dtype\n",
            "---  ------                           --------------  -----\n",
            " 0   Floor space of the shop          10 non-null     int64\n",
            " 1   Distance to the nearest station  10 non-null     int64\n",
            " 2   Monthly sales                    10 non-null     int64\n",
            "dtypes: int64(3)\n",
            "memory usage: 368.0 bytes\n",
            "None\n",
            "Floor space of the shop             6\n",
            "Distance to the nearest station     8\n",
            "Monthly sales                      10\n",
            "dtype: int64\n",
            "Floor space of the shop            0\n",
            "Distance to the nearest station    0\n",
            "Monthly sales                      0\n",
            "dtype: int64\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: xlabel='Distance to the nearest station', ylabel='Monthly sales'>"
            ]
          },
          "metadata": {},
          "execution_count": 2
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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RD2u8www1/5Ncv57K+uNx40ecerv9ejuebuMMT26gsLhsP7sz/5MFy9e1KFDhzodV1VVpY8//ljTp09XY2OjfvSjH+ngwYM6efKkxowZ0+E+xcXF2rBhQ7vtZWVlSklJ6clyAQBAL2tpadGyZcvU2Ngor9fb6bgeh5GnnnpK7733ng4dOtRpqOhIKBTS5MmTtXTpUm3cuLHDMR29MpKZmanz5893eTLRCoVC8vv9WrBggdxud8zmTWTUxIl6OFGP66YW75N07RWRjbPDer46ScGwy/KqunaiOC/ux6BHnPp7PZqampSamnrDMNKjt2lWr16td999VwcPHowqiEiS2+3WjBkzdPr06U7HeDweeTyeDveNx4MZr3kTGTVxoh5O1EMKtjqDRzDsarftVtObjxk94tRf69Hdc47qt2mMMVq9erV27dqlAwcOKCsrK+qFtba26vjx4xo5cmTU+wIAgL4nqldGCgoKVFZWpnfeeUdDhw5VIBCQJA0bNkyDBw+WJC1fvlyjR49WSUmJJOmFF17QN77xDY0fP14XL17Uyy+/rLNnz+qJJ56I8akAAIBEFFUY2bZtmyRp/vz5ju0//elP9d3vfleSVFdXp6Sk6y+4/OEPf9CqVasUCAR02223adasWTp8+LCmTJlycysHAAB9QlRhpDufda2oqHDc3rx5szZv3hzVogAAQP/Bd9MAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwKqowUlJSonvvvVdDhw5VWlqa8vPzderUqRvut3PnTk2aNEmDBg3StGnTtGfPnh4vGAAA9C1RhZHKykoVFBToyJEj8vv9CoVCys3NVXNzc6f7HD58WEuXLtXjjz+uY8eOKT8/X/n5+Tpx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AKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwqkdhZOvWrbrjjjs0aNAgzZ07V++//36nY0tLS+VyuRw/gwYN6vGCAQBA3xJ1GHnrrbdUWFio9evX64MPPlB2drby8vJ07ty5Tvfxer2qr6+P/Jw9e/amFg0AAPqOqMPIK6+8olWrVmnlypWaMmWKtm/frpSUFL355pud7uNyuZSRkRH5SU9Pv6lFAwCAviOqMHL16lXV1NQoJyfn+gRJScrJyVFVVVWn+12+fFnjxo1TZmamlixZopMnT/Z8xQAAoE8ZGM3g8+fPq7W1td0rG+np6froo4863GfixIl68803NX36dDU2NupHP/qR7rvvPp08eVJjxozpcJ9gMKhgMBi53dTUJEkKhUIKhULRLLlLbXN5kkzM5kx0bbWgJte09Ugs+y6RxasengGJ22+JdM30Rh9zzTj7OVH6I16PV3fndRljul2hzz77TKNHj9bhw4fl8/ki25999llVVlbq6NGj3VrY5MmTtXTpUm3cuLHDMcXFxdqwYUO77WVlZUpJSenucgEAgEUtLS1atmyZGhsb5fV6Ox0X1SsjqampGjBggBoaGhzbGxoalJGR0a053G63ZsyYodOnT3c6pqioSIWFhZHbTU1NyszMVG5ubpcnE61QKCS/36/nq5MUDLtiNm8i8yQZbZwdpib/79jfPSi/368FCxbI7XbbXo51bddMrOsxtXhfzObqbYl0zZwozov7MeLVI4nky/2cKP0Rr95oe2fjRqIKI8nJyZo1a5bKy8uVn58vSQqHwyovL9fq1au7NUdra6uOHz+ub33rW52O8Xg88ng87ba73e64NHcw7FKw9dZtEhuoyTVt/Rav3ktUsa5HX+i1RLhmerOH+/M101Ef3Or9Ea/HqrvzRhVGJKmwsFArVqzQ7NmzNWfOHL366qtqbm7WypUrJUnLly/X6NGjVVJSIkl64YUX9I1vfEPjx4/XxYsX9fLLL+vs2bN64okn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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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Doduu+025eTkuJaXH61avXq1evbsKV9fX33++ecqKytTUlKSWrVqJT8/P3Xt2lXvvvuu630//fSTxowZo/DwcPn5+aldu3Z68803JUmtWrWSJHXv3l02m00DBgyocB8vZR1bt27V4MGDFRYWpuDgYPXv31/bt293rfNCn81zT2OVlZVp9uzZat68uXx9fdWtWzd9/PHHVe5/oFp5+EGkQL2VkJBghg8fXuGyrl27mmHDhrmmJZn33nvPGGPM008/baKjo82mTZvMwYMHzWeffWaWLFlijDEmJyfH9bTnrKwsk5OTY4wxJjU11bzyyismLS3NfP/992bGjBmmSZMm5tChQ65txMTEmJCQEPPSSy+ZvXv3mqSkJOPl5WW+++47Y4wxp06dMq1btzbXXnut+eyzz8zevXvNO++8Y7Zs2WKMMWbTpk3GbrebhQsXmn379pk1a9aYli1bmlmzZlW4j6dOnTJ//OMfzdChQ01WVpbJysoyxcXFpqCgwERFRZmRI0eatLQ0s379etOqVSvXU9/PdfbsWfPvf//bSDLp6ekmKyvLnDx50hhjTP/+/Y3dbjezZs0y33//vVm0aJGx2WxuT4AeNGiQuemmm8zWrVvN999/bx5++GETGhpqjh8/XuH2Dhw4YCSZDh06mFWrVpn09HRzyy23mJiYGNdToTMyMkxAQIB57rnnzPfff282b95sunfvbsaNG+dazz/+8Q/z0UcfmX379pmUlBTjdDrd/s3Ln/bepUsXs2bNGpORkWGOHz9u/ud//sd06NDBfPzxx2bfvn3mzTffNL6+vmbjxo3GGGMSExNNt27dzNatW82BAwfM2rVrzQcffGCMMearr74yksy6detMVlbWBffxUtaxfv1689Zbb5k9e/aY3bt3m/Hjx5vIyEiTn59vjLnwZ/Pxxx83Xbt2dW372WefNXa73SxdutR899135tFHHzXe3t7m+++/r3T/A9WNsANcoouFnVtvvdV07NjRNf3rsDNp0iRz/fXXm7Kysgrf++u2F3PVVVeZ+fPnu6ZjYmLM7bff7pouKyszERERZsGCBcYYY1599VUTFBR0wS/IgQMHmjlz5rjNe+utt0xUVNQFa6ioD1577TVzxRVXmIKCAte8//znP8bLy8tkZ2dXuJ7yYPDTTz+5ze/fv7/5r//6L7d5V199tZk2bZoxxpjPPvvM2O12c/r0abc2bdq0Ma+++mqF2yr/sv373//umrdr1y4jyezZs8cYY8z48ePNvffe6/a+zz77zHh5eZmff/65wvVu3brVSDKnTp1y26f333/f1eb06dPG39/fFTDLjR8/3owePdoYY8xNN91k7rzzzovWvmPHjgqXl6uOdZSWlpqgoCDz4YcfuuZV9Nk8N+w0a9bM/PWvf3Vrc/XVV5v777/fbfsX63+gunEaC6gBxhjZbLYKl40bN06pqalq3769Jk+erDVr1vzm+goKCvTII4+oY8eOatq0qQIDA7Vnzx5lZma6tevSpYvrZ5vNJofD4Tq1kpqaqu7duyskJKTCbXzzzTeaPXu2AgMDXa977rlHWVlZKioqquyua8+ePeratasCAgJc8/r27auysjKlp6dXej0V7ZMkRUVFufbpm2++UUFBgUJDQ93qPnDggPbt21fp9UZFRUmS23oXLlzots64uDiVlZXpwIEDkqRt27bppptuUosWLRQUFKT+/ftL0nn/Jr169XL9nJGRoaKiIg0ePNht3YsXL3bVO2HCBC1btkzdunXTo48+qi1btlS5zy5lHUePHtU999yjdu3aKTg4WHa7XQUFBeftz8Xk5+fryJEj6tu3r9v8vn37as+ePW7zLtb/QHVr7OkCACvas2ePa2zEuXr06KEDBw5o9erVWrdunf74xz9q0KBBbuM2zvXII49o7dq1euaZZ9S2bVv5+fnplltuUUlJiVs7b29vt2mbzea6MszPz++iNRcUFOiJJ57QyJEjz1vWpEmTi763Jl1snwoKChQVFeUaK/RrTZs2rfR6y4Ppr9f73//935o8efJ572vRooUKCwsVFxenuLg4vf322woPD1dmZqbi4uLO+zf5degrH7f0n//8R1deeaVbu/IB7MOGDdOhQ4f00Ucfae3atRo4cKASExP1zDPPXHR/fu1S1pGQkKDjx4/rhRdeUExMjHx9feV0Os/bn+pysf4HqhthB6hmn376qdLS0jRlypQLtrHb7br11lt166236pZbbtHQoUN14sQJhYSEyNvbW6WlpW7tN2/erHHjxunmm2+W9MuX5sGDB6tUV5cuXfT3v//dtZ1z9ejRQ+np6Wrbtm2l1+nj43NerR07dtTChQtVWFjo+qLfvHmzvLy81L59+wuuR9J56/otPXr0UHZ2tho3buwaMFsdevTood27d1+wL9LS0nT8+HHNnTtX0dHRkqSvv/76N9cbGxsrX19fZWZmuo4EVSQ8PFwJCQlKSEjQtddeq6lTp+qZZ56pUj9VdR2bN2/Wyy+/rBtuuEGSdPjwYR07dsytTUWfzV+z2+1q1qyZNm/e7LZ/mzdvVu/evX+zZqCmcBoLuAzFxcXKzs7Wjz/+qO3bt2vOnDkaPny4brzxRo0dO7bC9zz77LNaunSpvvvuO33//fdavny5HA6H60hEy5YttX79emVnZ+unn36SJLVr104rVqxQamqqvvnmG912221V/l/w6NGj5XA4NGLECG3evFn79+/Xv//9b9dVMDNnztTixYv1xBNPaNeuXdqzZ4+WLVumGTNmXHCdLVu21M6dO5Wenq5jx47pzJkzGjNmjJo0aaKEhAR9++232rBhgyZNmqQ77rhDkZGRFa4nJiZGNptNq1atUm5u7gWv3DrXoEGD5HQ6NWLECK1Zs0YHDx7Uli1b9Je//KVS4eNCpk2bpi1btmjixIlKTU3V3r17tXLlSk2cOFHSL0d3fHx8NH/+fO3fv18ffPCBnnzyyd9cb1BQkB555BFNmTJFixYt0r59+7R9+3bNnz9fixYtkvTLv8PKlSuVkZGhXbt2adWqVerYsaMkKSIiQn5+fvr444919OhR5eXlVbidS1lHu3bt9NZbb2nPnj368ssvNWbMmPOOBlb02TzX1KlT9dRTT+mdd95Renq6HnvsMaWmpuqBBx6oRM8DNcTTg4aA+iohIcFIMpJM48aNTXh4uBk0aJB54403TGlpqVtb/Wpg52uvvWa6detmAgICjN1uNwMHDjTbt293tf3ggw9M27ZtTePGjU1MTIwx5pdBndddd53x8/Mz0dHR5m9/+5vp37+/eeCBB1zvi4mJMc8995zbdrt27Woef/xx1/TBgwfNqFGjjN1uN/7+/qZXr17myy+/dC3/+OOPze9//3vj5+dn7Ha76d27t3nttdcu2Ac5OTlm8ODBJjAw0EgyGzZsMMYYs3PnTnPdddeZJk2amJCQEHPPPfe4Bu5eyOzZs43D4TA2m8115da5+2iMMcOHD3e7sis/P99MmjTJNGvWzHh7e5vo6GgzZswYk5mZWeF2Khqg+9NPP7nVb8wvVy2V71tAQIDp0qWL28DbJUuWmJYtWxpfX1/jdDrNBx984LbeCw26LisrM88//7xp37698fb2NuHh4SYuLs4kJycbY4x58sknTceOHY2fn58JCQkxw4cPN/v373e9//XXXzfR0dHGy8vL9O/fv8J9vJR1bN++3fTq1cs0adLEtGvXzixfvvy8z1RFn81zByiXlpaaWbNmmSuvvNJ4e3ubrl27mtWrV1e5/4HqZDPGGE8FLQAAgJrGaSwAAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBphB0AAGBp/x+dCAajCa0RgQAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# C谩lculo de la correlaci贸n entre variables num茅ricas\n",
        "print(df.corr())\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xOD35lvm4EaE",
        "outputId": "7a9ab675-215a-42e6-d274-ea2601598eae"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                                 Floor space of the shop  \\\n",
            "Floor space of the shop                         1.000000   \n",
            "Distance to the nearest station                -0.492155   \n",
            "Monthly sales                                   0.892385   \n",
            "\n",
            "                                 Distance to the nearest station  \\\n",
            "Floor space of the shop                                -0.492155   \n",
            "Distance to the nearest station                         1.000000   \n",
            "Monthly sales                                          -0.775083   \n",
            "\n",
            "                                 Monthly sales  \n",
            "Floor space of the shop               0.892385  \n",
            "Distance to the nearest station      -0.775083  \n",
            "Monthly sales                         1.000000  \n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# graficar matriz de correlacion\n",
        "\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "# Calcula la matriz de correlaci贸n\n",
        "correlation_matrix = df.corr()\n",
        "\n",
        "# Crea un mapa de calor (heatmap) de la matriz de correlaci贸n\n",
        "plt.figure(figsize=(10, 8))  # Ajusta el tama帽o de la figura si es necesario\n",
        "sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', linewidths=.5)\n",
        "plt.title('Matriz de Correlaci贸n')\n",
        "plt.show()\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 699
        },
        "id": "chfMXavA4GJ_",
        "outputId": "83f3d000-bcc2-4fcd-c74b-89986cf4d4a5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x800 with 2 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwgAAAKqCAYAAACepnlGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACMwUlEQVR4nOzdd3RU5dbH8d+kTRoJAVIAkdCkN0EQpCkggoDYBZUmYKNIUAQLTQXxCuK1IV4F8YriBUSK0iJVkY6A9B5CQgshkEDanPcPXkbHJJATTjIkfj9rnbUyz2n7DEnInv0Um2EYhgAAAABAkoe7AwAAAABw4yBBAAAAAOBEggAAAADAiQQBAAAAgBMJAgAAAAAnEgQAAAAATiQIAAAAAJxIEAAAAAA4kSAAANwiNTVVY8eO1eLFi90dCgDgL0gQANxwRo0aJZvNlq/3sNlsGjVqVL7e40YXGRmpnj175tv1r/UeR0VF6euvv1bjxo3zLQYAgHkkCMA/2LRp02Sz2WSz2bRmzZos+w3DULly5WSz2dSxY8c83WPs2LGaO3fudUZaOGRmZmrq1Klq1aqVSpQoIbvdrsjISPXq1UsbN250d3g3lO+++05z587VTz/9pOLFi7s7HADAX5AgAJCvr69mzJiRpX3lypU6duyY7HZ7nq+dlwThtdde08WLF/N8T3e4ePGiOnbsqN69e8swDL3yyiv65JNP1L17d61du1aNGjXSsWPH3B1mgbp48aJee+21LO2GYejYsWP66aefdPPNN7shMgDA1Xi5OwAA7tehQwf973//07///W95ef35a2HGjBlq0KCBTp8+XSBxJCcnKyAgQF5eXi5xFAYvvfSSFi1apPfee08vvPCCy76RI0fqvffes+Q+V96j7KSkpMjf39+S+1jB19c323abzaaoqKgCjgYAkFtUEACoa9euOnPmjJYuXepsS0tL06xZs9StW7dsz3n33XfVtGlTlSxZUn5+fmrQoIFmzZrlcozNZlNycrK+/PJLZ1emK33er4wz2Llzp7p166aQkBA1a9bMZd8VPXv2dJ7/9+1a4whSU1M1ePBghYaGqlixYurcuXOOn+THxsaqd+/eCg8Pl91uV82aNfXFF19c6+3TsWPH9Omnn6pt27ZZkgNJ8vT01IsvvqibbrrJ2bZlyxa1b99eQUFBCgwMVOvWrfXbb7+5nHelC9jKlSv13HPPKSwszHmNVq1aqVatWtq0aZNatGghf39/vfLKK85nHjlypCpXriy73a5y5cpp6NChSk1NvepzJCQk6MUXX1Tt2rUVGBiooKAgtW/fXr///nuWYy9duqRRo0bplltuka+vr0qXLq0HHnhABw4ccB6T3b+Pmef+5ZdfFBUVpdDQUAUEBOj+++/XqVOnrvoMAIDrV7g+ogOQLyIjI9WkSRN98803at++vSTpp59+0rlz5/TYY4/p3//+d5Zz3n//fXXu3FmPP/640tLS9O233+rhhx/WggULdO+990qSvvrqK/Xp00eNGjVSv379JEmVKlVyuc7DDz+sKlWqaOzYsTIMI9v4nn76abVp08albdGiRfr6668VFhZ21Wfr06eP/vvf/6pbt25q2rSpfv75Z2d8f3XixAndfvvtstls6t+/v0JDQ/XTTz/pqaeeUlJSUrZ/+F/x008/KSMjQ08++eRVY7nijz/+UPPmzRUUFKShQ4fK29tbn376qVq1aqWVK1dmGbT73HPPKTQ0VCNGjFBycrKz/cyZM2rfvr0ee+wxPfHEEwoPD5fD4VDnzp21Zs0a9evXT9WrV9f27dv13nvvae/evVft7nXw4EHNnTtXDz/8sCpUqKATJ07o008/VcuWLbVz506VKVNG0uWxFh07dlR0dLQee+wxDRo0SOfPn9fSpUu1Y8eOLP/GeX3uAQMGKCQkRCNHjtThw4c1adIk9e/fXzNnzszV+wwAyCMDwD/W1KlTDUnGhg0bjA8//NAoVqyYkZKSYhiGYTz88MPGnXfeaRiGYZQvX9649957Xc69ctwVaWlpRq1atYy77rrLpT0gIMDo0aNHlnuPHDnSkGR07do1x3052bdvnxEcHGy0bdvWyMjIyPG4rVu3GpKM5557zqW9W7duhiRj5MiRzrannnrKKF26tHH69GmXYx977DEjODg4y/P+1eDBgw1JxpYtW3I85q+6dOli+Pj4GAcOHHC2HT9+3ChWrJjRokULZ9uVf59mzZplec6WLVsakozJkye7tH/11VeGh4eHsXr1apf2yZMnG5KMX375xdlWvnx5l3+bS5cuGZmZmS7nHTp0yLDb7caYMWOcbV988YUhyZg4cWKWZ3M4HM6v//4em33uNm3auFxv8ODBhqenp5GYmJjlvgAA69DFCIAk6ZFHHtHFixe1YMECnT9/XgsWLMixe5Ek+fn5Ob8+e/aszp07p+bNm2vz5s2m7vvMM8+YOj45OVn333+/QkJC9M0338jT0zPHY3/88UdJ0sCBA13a/14NMAxDs2fPVqdOnWQYhk6fPu3c2rVrp3Pnzl31uZKSkiRJxYoVu2b8mZmZWrJkibp06aKKFSs620uXLq1u3bppzZo1zutd0bdv32yf0263q1evXi5t//vf/1S9enVVq1bN5TnuuusuSdLy5ctzjM1ut8vDw8MZ55kzZxQYGKiqVau6PP/s2bNVqlQpDRgwIMs1cpqeNi/P3a9fP5frNW/eXJmZmTpy5EiOzwAAuH50MQIgSQoNDVWbNm00Y8YMpaSkKDMzUw899FCOxy9YsEBvvvmmtm7d6tK33ez6BRUqVDB1fN++fXXgwAH9+uuvKlmy5FWPPXLkiDw8PLJ0ealatarL61OnTikxMVFTpkzRlClTsr3WyZMnc7xPUFCQJOn8+fPXjP/UqVNKSUnJEoMkVa9eXQ6HQzExMapZs6azPaf3qGzZsvLx8XFp27dvn3bt2qXQ0FDTz+FwOPT+++/r448/1qFDh5SZmenc99f3+sCBA6pataqpgeR5ee6/z3AUEhIi6XJCCgDIPyQIAJy6deumvn37Kj4+Xu3bt89xfvrVq1erc+fOatGihT7++GOVLl1a3t7emjp1arbTpV7NXysR1/L+++/rm2++0X//+1/Vq1fP1H2uxuFwSJKeeOIJ9ejRI9tj6tSpk+P51apVkyRt377d0riuyOk9yq7d4XCodu3amjhxYrbnlCtXLsf7jB07Vq+//rp69+6tN954QyVKlJCHh4deeOEF53tUkHKqDhk5jFUBAFiDBAGA0/3336+nn35av/3221UHgs6ePVu+vr5avHixyxoJU6dOzXKsVSsir169Wi+++KJeeOEFPf7447k6p3z58nI4HM5PvK/Ys2ePy3FXZjjKzMzMMhg6N9q3by9PT0/997//veZA5dDQUPn7+2eJQZJ2794tDw+Pq/4Rfy2VKlXS77//rtatW5t+72fNmqU777xTn3/+uUt7YmKiSpUq5XKPdevWKT09Xd7e3rm6dn4/NwDAOoxBAOAUGBioTz75RKNGjVKnTp1yPM7T01M2m82lC8rhw4eznSEnICBAiYmJ1xVXXFycHnnkETVr1kz/+te/cn3elRmZ/j4L06RJk1xee3p66sEHH9Ts2bO1Y8eOLNe51tSa5cqVU9++fbVkyRJ98MEHWfY7HA5NmDBBx44dk6enp+6++2798MMPOnz4sPOYEydOaMaMGWrWrJmzy1JePPLII4qNjdVnn32WZd/FixddZkH6O09Pzyyfzv/vf/9TbGysS9uDDz6o06dP68MPP8xyjZw+3c/v5wYAWIcKAgAXOXWx+at7771XEydO1D333KNu3brp5MmT+uijj1S5cmVt27bN5dgGDRpo2bJlmjhxosqUKaMKFSpkmc7yWgYOHKhTp05p6NCh+vbbb1321alTJ8fuP/Xq1VPXrl318ccf69y5c2ratKmio6O1f//+LMe+/fbbWr58uRo3bqy+ffuqRo0aSkhI0ObNm7Vs2TIlJCRcNcYJEybowIEDGjhwoObMmaOOHTsqJCRER48e1f/+9z/t3r1bjz32mCTpzTff1NKlS9WsWTM999xz8vLy0qeffqrU1FS98847pt6bv3vyySf13Xff6ZlnntHy5ct1xx13KDMzU7t379Z3332nxYsXq2HDhtme27FjR40ZM0a9evVS06ZNtX37dn399dcug4olqXv37po+fbqioqK0fv16NW/eXMnJyVq2bJmee+453XfffdlePz+fGwBgIbfOoQTArf46zenVZDfN6eeff25UqVLFsNvtRrVq1YypU6dmOz3p7t27jRYtWhh+fn6GJOe0mleOPXXqVJb7/f06V6b0zG776zSa2bl48aIxcOBAo2TJkkZAQIDRqVMnIyYmJttzT5w4YTz//PNGuXLlDG9vbyMiIsJo3bq1MWXKlKve44qMjAzjP//5j9G8eXMjODjY8Pb2NsqXL2/06tUryxSomzdvNtq1a2cEBgYa/v7+xp133mn8+uuvLsdc7d+nZcuWRs2aNbONIy0tzRg/frxRs2ZNw263GyEhIUaDBg2M0aNHG+fOnXMel900p0OGDDFKly5t+Pn5GXfccYexdu1ao2XLlkbLli1d7pGSkmK8+uqrRoUKFZzv1UMPPeQyhWl27/H1PPfy5csNScby5cuzfW4AgDVshsFoLwAAAACXMQYBAAAAgBMJAgAAAAAnEgQAAAAATiQIAAAAQAFZtWqVOnXqpDJlyshms2U7RfjfrVixQrfeeqvsdrsqV66sadOm5WuMJAgAAABAAUlOTlbdunX10Ucf5er4Q4cO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AAAATlQQAAAAUKgZKpqDhd3FdAXhrrvuUmJiYpb2pKQk3XXXXVbEBAAAAMBNTFcQVqxYobS0tCztly5d0urVqy0JCgAAAMgtgzEIlsp1grBt2zbn1zt37lR8fLzzdWZmphYtWqSyZctaGx0AAACAApXrBKFevXqy2Wyy2WzZdiXy8/PTBx98YGlwAAAAAApWrhOEQ4cOyTAMVaxYUevXr1doaKhzn4+Pj8LCwuTp6ZkvQQIAAAA5oouRpXKdIJQvX16S5HA48i0YAAAAAO5lOt368ssvtXDhQufroUOHqnjx4mratKmOHDliaXAAAADAtRg2m9u2osh0gjB27Fj5+flJktauXasPP/xQ77zzjkqVKqXBgwdbHiAAAACAgmN6mtOYmBhVrlxZkjR37lw99NBD6tevn+644w61atXK6vgAAAAAFCDTFYTAwECdOXNGkrRkyRK1bdtWkuTr66uLFy9aGx0AAABwDYbNw21bUWS6gtC2bVv16dNH9evX1969e9WhQwdJ0h9//KHIyEir4wMAAABQgEynPR999JGaNGmiU6dOafbs2SpZsqQkadOmTeratavlAQIAAABXZbO5byuCTFcQihcvrg8//DBL++jRoy0JCAAAAID75Knj1OrVq/XEE0+oadOmio2NlSR99dVXWrNmjaXBAQAAANfCGARrmX6q2bNnq127dvLz89PmzZuVmpoqSTp37pzGjh1reYAAAAAACo7pBOHNN9/U5MmT9dlnn8nb29vZfscdd2jz5s2WBgcAAACgYJkeg7Bnzx61aNEiS3twcLASExOtiAkAAADINUNFc7Cwu5iuIERERGj//v1Z2tesWaOKFStaEhQAAAAA9zBdQejbt68GDRqkL774QjabTcePH9fatWv14osv6vXXX8+PGAEAAIAcFdXBwu5i+t0cNmyYunXrptatW+vChQtq0aKF+vTpo6effloDBgzIjxgBAACAIuOjjz5SZGSkfH191bhxY61fvz7HYz/77DM1b95cISEhCgkJUZs2ba56vBVMJQiZmZlavXq1nn/+eSUkJGjHjh367bffdOrUKb3xxhv5FSMAAABQJMycOVNRUVEaOXKkNm/erLp166pdu3Y6efJktsevWLFCXbt21fLly7V27VqVK1dOd999t3OpgfxgMwzDMHOCr6+vdu3apQoVKlgezIBJSZZfEyjK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AABwAzCdILRs2TI/4gAAAABwAzCdIEhSYmKiPv/8c+3atUuSVLNmTfXu3VvBwcGWBgcAAABci4N1ECxlepDyxo0bValSJb333ntKSEhQQkKCJk6cqEqVKmnz5s35ESMAAACAAmK6gjB48GB17txZn332mby8Lp+ekZGhPn366IUXXtCqVassDxIAAADICYOUrWU6Qdi4caNLciBJXl5eGjp0qBo2bGhpcAAAAAAKlukuRkFBQTp69GiW9piYGBUrVsySoAAAAIDcMgzDbVtRZDpBePTRR/XUU09p5syZiomJUUxMjL799lv16dNHXbt2zY8YAQAAABQQ012M3n33XdlsNnXv3l0ZGRmSJG9vbz377LN6++23LQ8QAAAAQMExnSD4+Pjo/fff17hx43TgwAFJUqVKleTv7295cAAAAMC1OBikbKk8rYMgSf7+/qpdu7aVsQAAAABws1wnCL17987VcV988UWegwEAAADMKorTnCYkJGjAgAGaP3++PDw89OCDD+r9999XYGDgVc9bu3atXn31Va1bt06enp6qV6+eFi9eLD8/v1zfO9cJwrRp01S+fHnVr1+/yI7YBgAAAG4Ejz/+uOLi4rR06VKlp6erV69e6tevn2bMmJHjOWvXrtU999yj4cOH64MPPpCXl5d+//13eXiYm5co1wnCs88+q2+++UaHDh1Sr1699MQTT6hEiRKmbgYAAADg6nbt2qVFixZpw4YNznXGPvjgA3Xo0EHvvvuuypQpk+15gwcP1sCBAzVs2DBnW9WqVU3fP9fpxEcffaS4uDgNHTpU8+fPV7ly5fTII49o8eLFVBQAAADgNkVtHYS1a9eqePHiLosQt2nTRh4eHlq3bl2255w8eVLr1q1TWFiYmjZtqvDwcLVs2VJr1qwxfX9T9Qa73a6uXbtq6dKl2rlzp2rWrKnnnntOkZGRunDhgumbAwAAAIVZamqqkpKSXLbU1NTrumZ8fLzCwsJc2ry8vFSiRAnFx8dne87BgwclSaNGjVLfvn21aNEi3XrrrWrdurX27dtn6v6mF0pznujhIZvNJsMwlJmZmdfLAAAAANfFcDjcto0bN07BwcEu27hx47KNc9iwYbLZbFfddu/enaf3wOFwSJKefvpp9erVS/Xr19d7772nqlWrmp5EyNQ0p6mpqZozZ46++OILrVmzRh07dtSHH36o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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#Regresion multilineal"
      ],
      "metadata": {
        "id": "QJetvh305AvH"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#usando skelearn , regresion multineal de df\n",
        "\n",
        "from sklearn.linear_model import LinearRegression\n",
        "from sklearn.metrics import mean_squared_error, r2_score\n",
        "\n",
        "# Define las variables predictoras (X) y la variable objetivo (y)\n",
        "X = df.drop('Monthly sales', axis=1)  # Reemplaza 'Monthly sales' con la columna de tu variable objetivo\n",
        "y = df['Monthly sales']\n",
        "\n",
        "\n",
        "# Crea un modelo de regresi贸n lineal\n",
        "model = LinearRegression()\n",
        "\n",
        "# Entrena el modelo con los datos de entrenamiento\n",
        "model.fit(X, y)\n",
        "\n",
        "# Realiza predicciones en el conjunto de prueba\n",
        "y_pred = model.predict(X)\n",
        "\n",
        "# Eval煤a el rendimiento del modelo\n",
        "mse = mean_squared_error(y, y_pred)\n",
        "r2 = r2_score(y, y_pred)\n",
        "\n",
        "print('Error cuadr谩tico medio (MSE):', mse)\n",
        "print('Coeficiente de determinaci贸n (R^2):', r2)\n",
        "\n",
        "# Imprime los coeficientes del modelo\n",
        "print('Coeficientes:', model.coef_)\n",
        "print('Intercepto:', model.intercept_)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TACBpLn85Ixm",
        "outputId": "9000fdd7-92ba-483a-c4fd-21e8faff6987"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Error cuadr谩tico medio (MSE): 417.3006119994701\n",
            "Coeficiente de determinaci贸n (R^2): 0.945235852681711\n",
            "Coeficientes: [41.51347826 -0.34088269]\n",
            "Intercepto: 65.32391638894836\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Guardar modelo"
      ],
      "metadata": {
        "id": "zDOjRcZc5QtS"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#guardar modelo en formato pickle\n",
        "\n",
        "import pickle\n",
        "\n",
        "# Guarda el modelo en un archivo pickle\n",
        "filename = 'modelo_regresion.pkl'\n",
        "pickle.dump(model, open(filename, 'wb'))\n"
      ],
      "metadata": {
        "id": "u1v4mp_H5ymb"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# prompt: un dataframe llamado new_data, que tiene las mismas columnas que df\n",
        "\n",
        "import pandas as pd\n",
        "new_data = pd.DataFrame({'Floor space of the shop':[11],'Distance to the nearest station':[81]})\n"
      ],
      "metadata": {
        "id": "PnXDFA7A6Brs"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "new_data"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 89
        },
        "id": "lDrHh--C6iGV",
        "outputId": "009fd832-5868-4590-ac46-e801ec9413c8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   Floor space of the shop  Distance to the nearest station\n",
              "0                       11                               81"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-89177922-747e-4041-bf87-bbb7c9be05b9\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Floor space of the shop</th>\n",
              "      <th>Distance to the nearest station</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>11</td>\n",
              "      <td>81</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-89177922-747e-4041-bf87-bbb7c9be05b9')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-89177922-747e-4041-bf87-bbb7c9be05b9 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-89177922-747e-4041-bf87-bbb7c9be05b9');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "  <div id=\"id_6c817e9b-c510-4170-ac78-1382c52be29c\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('new_data')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_6c817e9b-c510-4170-ac78-1382c52be29c button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('new_data');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "new_data",
              "summary": "{\n  \"name\": \"new_data\",\n  \"rows\": 1,\n  \"fields\": [\n    {\n      \"column\": \"Floor space of the shop\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 11,\n        \"max\": 11,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          11\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Distance to the nearest station\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 81,\n        \"max\": 81,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          81\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# probar que se puede cargar el modelo e inferir - predecir\n",
        "\n",
        "# Cargar modelo\n",
        "loaded_model = pickle.load(open('modelo_regresion.pkl', 'rb'))\n",
        "\n",
        "# Ejemplo de c贸mo usar el modelo cargado para hacer una predicci贸n\n",
        "# (Asumiendo que tienes nuevos datos en un DataFrame llamado 'new_data')\n",
        "# new_data debe tener las mismas columnas que las variables predictoras (X) utilizadas para entrenar el modelo\n",
        "\n",
        "\n",
        "y_pred_new = loaded_model.predict(new_data)\n",
        "y_pred_new[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "EKhZL78x55jn",
        "outputId": "457a8ad2-e429-4ad4-bf1b-6614845fd388"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "494.36067967101843"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# prompt: codigo que haga un interfaz en gradio para cargar modelo_regresion.pkl e introducir las dos variables y mostrar el resultado\n",
        "\n",
        "import pandas as pd\n",
        "!pip install gradio\n",
        "\n",
        "import gradio as gr\n",
        "import pickle\n",
        "\n",
        "# Cargar modelo\n",
        "loaded_model = pickle.load(open('modelo_regresion.pkl', 'rb'))\n",
        "\n",
        "def predict_sales(floor_space, distance):\n",
        "  new_data = pd.DataFrame({'Floor space of the shop':[floor_space],'Distance to the nearest station':[distance]})\n",
        "  prediction = loaded_model.predict(new_data)\n",
        "  return prediction[0]\n",
        "\n",
        "# Crear interfaz Gradio\n",
        "iface = gr.Interface(\n",
        "  fn=predict_sales,\n",
        "  inputs=[\n",
        "    gr.inputs.Number(label=\"Floor space of the shop\"),\n",
        "    gr.inputs.Number(label=\"Distance to the nearest station\")\n",
        "  ],\n",
        "  outputs=gr.outputs.Textbox(label=\"Predicted Monthly Sales\")\n",
        ")\n",
        "\n",
        "iface.launch()\n"
      ],
      "metadata": {
        "id": "U5D1tEOP8AtT"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}