perezcatriel commited on
Commit
c7f9f06
1 Parent(s): 0b1127d

[FIX] clean code

Browse files
Files changed (3) hide show
  1. doctest.py +0 -5
  2. modelo.py +0 -137
  3. requirements.txt +0 -65
doctest.py DELETED
@@ -1,5 +0,0 @@
1
- import janitor
2
- import pandas as pd
3
-
4
- diabetes_df = pd.read_csv("https://nrvis.com/data/mldata/pima-indians-diabetes.csv", names=['pregnancies', 'glucose', 'blood_pressurte', 'skin_thinckness', 'insulin', 'bmi', 'diabetes_pedigree_function', 'age', 'outcome'])
5
- print(diabetes_df.info())
 
 
 
 
 
 
modelo.py DELETED
@@ -1,137 +0,0 @@
1
- import random
2
- import os
3
- import requests
4
- from dotenv import load_dotenv
5
- import folium
6
- import streamlit as st
7
- import joblib
8
- from sklearn.cluster import KMeans
9
- import numpy as np
10
- import matplotlib.pyplot as plt
11
-
12
- load_dotenv()
13
-
14
- API_KEY = os.getenv('API_KEY')
15
- BASE_URL = os.getenv('BASE_URL')
16
-
17
- def geocode_address(address):
18
- # Aqu铆 debes insertar tu clave de API de Google Maps
19
- api_key = API_KEY
20
-
21
- # URL base de la API de Geocodificaci贸n de Google Maps
22
- base_url = BASE_URL
23
-
24
- # Par谩metros de la solicitud
25
- params = {
26
- 'address': address,
27
- 'key': api_key
28
- }
29
-
30
- try:
31
- # Realizar la solicitud a la API de Geocodificaci贸n
32
- response = requests.get(base_url, params=params)
33
- data = response.json()
34
-
35
- if data['status'] == 'OK' and len(data['results']) > 0:
36
- # Obtener las coordenadas geogr谩ficas de la primera coincidencia
37
- location = data['results'][0]['geometry']['location']
38
- latitude = location['lat']
39
- longitude = location['lng']
40
-
41
- return latitude, longitude
42
- else:
43
- print('No se encontraron resultados para la direcci贸n especificada.')
44
- except requests.exceptions.RequestException as e:
45
- print('Error en la solicitud:', e)
46
-
47
-
48
- # Direcciones ficticias en Cosqu铆n, C贸rdoba, Argentina
49
- direcciones = [
50
- 'San Mart铆n 123',
51
- 'Tucum谩n 456',
52
- 'Catamarca 789',
53
- 'Per贸n 1321',
54
- 'Corrientes 654',
55
- 'Laurencena 877',
56
- 'San Mart铆n 234',
57
- 'Tucum谩n 567',
58
- 'Catamarca 890',
59
- 'San Martin 1432',
60
- 'Avenida parana 10',
61
- 'Japon 23'
62
- ]
63
-
64
- # Obtener las coordenadas geogr谩ficas de cada direcci贸n
65
- coordenadas = []
66
- for direccion in direcciones:
67
- resultado = geocode_address(direccion + ', Cosqu铆n, C贸rdoba, Argentina')
68
- if resultado:
69
- coordenadas.append(resultado)
70
- else:
71
- coordenadas.append((None, None))
72
-
73
- # Calcular el n煤mero de zonas (k) utilizando el m茅todo del codo
74
- max_k = len(coordenadas)
75
- inertias = []
76
- for k in range(2, max_k+1):
77
- modelo = KMeans(n_clusters=k, random_state=42)
78
- modelo.fit(coordenadas)
79
- inertias.append(modelo.inertia_)
80
-
81
- # Graficar las inercias en funci贸n de k
82
- plt.plot(range(2, max_k+1), inertias, marker='o')
83
- plt.xlabel('N煤mero de zonas (k)')
84
- plt.ylabel('Inercia')
85
- plt.title('M茅todo del Codo')
86
- plt.show()
87
-
88
- # Elegir el valor de k 贸ptimo
89
- k_optimo = int(input("Ingrese el valor 贸ptimo de k seg煤n el gr谩fico: "))
90
-
91
- # Crear el modelo de K-Means con k_optimo zonas
92
- modelo = KMeans(n_clusters=k_optimo, random_state=42)
93
- modelo.fit(coordenadas)
94
-
95
- # Obtener las etiquetas de las zonas
96
- etiquetas = modelo.labels_
97
-
98
- # Contar el n煤mero de zonas
99
- num_zonas = len(set(etiquetas))
100
-
101
- # Crear un diccionario para almacenar las direcciones por zona
102
- zonas = {}
103
- for i, etiqueta in enumerate(etiquetas):
104
- if etiqueta not in zonas:
105
- zonas[etiqueta] = []
106
- zonas[etiqueta].append(direcciones[i])
107
-
108
- # Mostrar las direcciones por zona
109
- for zona, direcciones_zona in zonas.items():
110
- print(f"Zona {zona + 1}:")
111
- for direccion in direcciones_zona:
112
- print(direccion)
113
- print()
114
-
115
- # Lista de colores predefinidos
116
- colores = ['red', 'blue', 'green', 'purple', 'orange', 'gray', 'pink',
117
- 'cyan', 'yellow', 'brown', 'black', 'white', 'violet']
118
-
119
- # Crear un mapa centrado en la primera coordenada
120
- primer_coordenada = coordenadas[0]
121
- mapa = folium.Map(location=primer_coordenada, zoom_start=15)
122
-
123
- # Agregar marcadores para cada coordenada con su zona y color correspondiente
124
- for i, coordenada in enumerate(coordenadas):
125
- zona = etiquetas[i] + 1 # Sumar 1 para que las zonas se muestren como n煤meros a partir de 1
126
- if coordenada != (None, None):
127
- color = colores[zona % len(colores)] # Obtener el color correspondiente a la zona
128
- folium.Marker(location=coordenada, popup=f'Zona: {zona}', icon=folium.Icon(color=color)).add_to(mapa)
129
- else:
130
- folium.Marker(location=coordenada, popup='Ubicaci贸n desconocida').add_to(mapa)
131
-
132
- # Guardar el mapa como un archivo HTML
133
- mapa.save('mapa.html')
134
-
135
- # Abrir el archivo HTML en el navegador para visualizar el mapa
136
- import webbrowser
137
- webbrowser.open('mapa.html')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirements.txt DELETED
@@ -1,65 +0,0 @@
1
- altair==4.2.2
2
- args==0.1.0
3
- attrs==23.1.0
4
- blinker==1.6.2
5
- branca==0.6.0
6
- cachetools==5.3.0
7
- certifi==2023.5.7
8
- charset-normalizer==3.1.0
9
- click==8.1.3
10
- clint==0.5.1
11
- contourpy==1.0.7
12
- coverage==7.2.5
13
- cycler==0.11.0
14
- decorator==5.1.1
15
- entrypoints==0.4
16
- folium==0.14.0
17
- fonttools==4.39.4
18
- gitdb==4.0.10
19
- GitPython==3.1.31
20
- idna==3.4
21
- importlib-metadata==6.6.0
22
- Jinja2==3.1.2
23
- joblib==1.2.0
24
- jsonschema==4.17.3
25
- kiwisolver==1.4.4
26
- mamba==0.11.2
27
- markdown-it-py==2.2.0
28
- MarkupSafe==2.1.2
29
- matplotlib==3.7.1
30
- mdurl==0.1.2
31
- numpy==1.24.3
32
- packaging==23.1
33
- pandas==2.0.1
34
- Pillow==9.5.0
35
- plotly==5.14.1
36
- protobuf==3.20.3
37
- pyarrow==12.0.0
38
- pydeck==0.8.1b0
39
- Pygments==2.15.1
40
- Pympler==1.0.1
41
- pyparsing==3.0.9
42
- pyrsistent==0.19.3
43
- python-dateutil==2.8.2
44
- python-dotenv==1.0.0
45
- pytz==2023.3
46
- requests==2.31.0
47
- rich==13.3.5
48
- scikit-learn==1.2.2
49
- scipy==1.10.1
50
- six==1.16.0
51
- smmap==5.0.0
52
- streamlit==1.22.0
53
- streamlit-folium==0.11.1
54
- tenacity==8.2.2
55
- threadpoolctl==3.1.0
56
- toml==0.10.2
57
- toolz==0.12.0
58
- tornado==6.3.2
59
- typing_extensions==4.6.0
60
- tzdata==2023.3
61
- tzlocal==5.0.1
62
- urllib3==2.0.2
63
- validators==0.20.0
64
- watchdog==3.0.0
65
- zipp==3.15.0