Spaces:
Runtime error
Runtime error
Commit
·
74b1fdc
1
Parent(s):
5788134
spot youtube
Browse files- ML/dataset_modelo_1.csv +0 -0
- ML/salary.py +5 -2
- ML/skill_top.py +26 -9
- app.py +41 -1
ML/dataset_modelo_1.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
ML/salary.py
CHANGED
@@ -7,10 +7,14 @@ from sklearn.ensemble import RandomForestRegressor
|
|
7 |
df = pd.read_csv('./ds_salaries.csv')
|
8 |
df = df[['company_location', 'salary_in_usd']]
|
9 |
|
|
|
10 |
# Codificar las ubicaciones de las empresas
|
11 |
le = LabelEncoder()
|
12 |
df['company_location'] = le.fit_transform(df['company_location'])
|
13 |
|
|
|
|
|
|
|
14 |
# Separar los datos de entrada y salida
|
15 |
X = df.iloc[:, :-1].values
|
16 |
y = df.iloc[:, -1].values
|
@@ -25,8 +29,7 @@ predicted_salaries = model.predict(locations.reshape(-1, 1))
|
|
25 |
results_df = pd.DataFrame({'company_location': locations, 'predicted_salary': predicted_salaries})
|
26 |
|
27 |
# Decodificar las ubicaciones de las empresas
|
28 |
-
|
29 |
-
results_df['company_location'] = decoded_locations
|
30 |
|
31 |
# Ordenar los resultados por salario predicho
|
32 |
results_df = results_df.sort_values('predicted_salary', ascending=False).reset_index(drop=True)
|
|
|
7 |
df = pd.read_csv('./ds_salaries.csv')
|
8 |
df = df[['company_location', 'salary_in_usd']]
|
9 |
|
10 |
+
|
11 |
# Codificar las ubicaciones de las empresas
|
12 |
le = LabelEncoder()
|
13 |
df['company_location'] = le.fit_transform(df['company_location'])
|
14 |
|
15 |
+
# Decodificar las ubicaciones de las empresas
|
16 |
+
decoded_locations = le.inverse_transform(df['company_location'].unique())
|
17 |
+
|
18 |
# Separar los datos de entrada y salida
|
19 |
X = df.iloc[:, :-1].values
|
20 |
y = df.iloc[:, -1].values
|
|
|
29 |
results_df = pd.DataFrame({'company_location': locations, 'predicted_salary': predicted_salaries})
|
30 |
|
31 |
# Decodificar las ubicaciones de las empresas
|
32 |
+
results_df['company_location'] = le.inverse_transform(results_df['company_location'])
|
|
|
33 |
|
34 |
# Ordenar los resultados por salario predicho
|
35 |
results_df = results_df.sort_values('predicted_salary', ascending=False).reset_index(drop=True)
|
ML/skill_top.py
CHANGED
@@ -4,7 +4,7 @@ from sklearn.feature_extraction.text import CountVectorizer
|
|
4 |
from sklearn.naive_bayes import MultinomialNB
|
5 |
|
6 |
# Cargar los datos
|
7 |
-
df = pd.read_csv('
|
8 |
|
9 |
# Crear una lista con todas las skills disponibles
|
10 |
all_skills = set()
|
@@ -47,13 +47,30 @@ def get_top_skills(title, limit):
|
|
47 |
skill_freq_dict = dict(zip(skill_names, skill_frequencies))
|
48 |
|
49 |
# Ordenar las habilidades por frecuencia descendente y devolver las más importantes (según el límite dado)
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
if title:
|
55 |
-
limit = st.number_input("Cantidad de habilidades a mostrar", value=5,
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
from sklearn.naive_bayes import MultinomialNB
|
5 |
|
6 |
# Cargar los datos
|
7 |
+
df = pd.read_csv('./dataset_modelo_1.csv')
|
8 |
|
9 |
# Crear una lista con todas las skills disponibles
|
10 |
all_skills = set()
|
|
|
47 |
skill_freq_dict = dict(zip(skill_names, skill_frequencies))
|
48 |
|
49 |
# Ordenar las habilidades por frecuencia descendente y devolver las más importantes (según el límite dado)
|
50 |
+
top_skills_high = sorted(skill_freq_dict, key=skill_freq_dict.get,
|
51 |
+
reverse=True)[:limit]
|
52 |
+
|
53 |
+
# Ordenar las habilidades por frecuencia ascendente y devolver las menos importantes (según el límite dado)
|
54 |
+
top_skills_low = sorted(skill_freq_dict, key=skill_freq_dict.get)[:limit]
|
55 |
+
|
56 |
+
return top_skills_high, top_skills_low
|
57 |
+
|
58 |
|
59 |
if title:
|
60 |
+
limit = st.number_input("Cantidad de habilidades a mostrar", value=5,
|
61 |
+
min_value=1, max_value=len(all_skills))
|
62 |
+
top_skills_high, top_skills_low = get_top_skills(title, limit)
|
63 |
+
|
64 |
+
col1, col2 = st.columns(2)
|
65 |
+
|
66 |
+
with col1:
|
67 |
+
st.write(
|
68 |
+
f"Las {limit} habilidades más importantes para el trabajo de '{title}' son:")
|
69 |
+
for skill in top_skills_high:
|
70 |
+
st.write(f"- {skill}")
|
71 |
+
|
72 |
+
with col2:
|
73 |
+
st.write(
|
74 |
+
f"Las {limit} habilidades menos importantes para el trabajo de '{title}' son:")
|
75 |
+
for skill in top_skills_low:
|
76 |
+
st.write(f"- {skill}")
|
app.py
CHANGED
@@ -6,6 +6,7 @@ import pandas as pd
|
|
6 |
import streamlit as st
|
7 |
from PIL import Image
|
8 |
from sklearn.linear_model import LinearRegression
|
|
|
9 |
from streamlit_option_menu import option_menu
|
10 |
|
11 |
# from streamlit.components.v1 import IFrame
|
@@ -94,6 +95,42 @@ if selected2 == "Home":
|
|
94 |
''', unsafe_allow_html=True)
|
95 |
st.image(scrum)
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
# st.image(logo, width=700)
|
98 |
st.markdown('''
|
99 |
<br>
|
@@ -136,7 +173,7 @@ if selected2 == "Home":
|
|
136 |
<hr>
|
137 |
""", unsafe_allow_html=True)
|
138 |
|
139 |
-
col1, col2, col3 = st.columns(
|
140 |
col1.markdown("""
|
141 |
<a href="https://github.com/LRascon/data_world_jobs">Github</a>
|
142 |
""", unsafe_allow_html=True)
|
@@ -148,6 +185,9 @@ if selected2 == "Home":
|
|
148 |
/DashboardVistazoelMercadoActual?:language=es-ES&publish=yes
|
149 |
&:display_count=n&:origin=viz_share_link">Tableau</a>
|
150 |
""", unsafe_allow_html=True)
|
|
|
|
|
|
|
151 |
|
152 |
# Pagina Projects
|
153 |
if selected2 == "Análisis":
|
|
|
6 |
import streamlit as st
|
7 |
from PIL import Image
|
8 |
from sklearn.linear_model import LinearRegression
|
9 |
+
from streamlit.components.v1 import components
|
10 |
from streamlit_option_menu import option_menu
|
11 |
|
12 |
# from streamlit.components.v1 import IFrame
|
|
|
95 |
''', unsafe_allow_html=True)
|
96 |
st.image(scrum)
|
97 |
|
98 |
+
#####
|
99 |
+
st.markdown("""
|
100 |
+
<br>
|
101 |
+
<h3>LatamBrain - Spot</h3>
|
102 |
+
<hr>
|
103 |
+
""", unsafe_allow_html=True)
|
104 |
+
|
105 |
+
|
106 |
+
VIDEO_ID = "VIDEO_ID"
|
107 |
+
|
108 |
+
# Genera el código HTML del iframe
|
109 |
+
html = f"""
|
110 |
+
<div >
|
111 |
+
<iframe
|
112 |
+
style="height:200px;width
|
113 |
+
:700px"
|
114 |
+
width="530"
|
115 |
+
height="360"
|
116 |
+
src="https://www.youtube.com/embed/G8PdiAwhbNM"
|
117 |
+
title="LatamBrain - Spot"
|
118 |
+
frameborder="0"
|
119 |
+
allow="accelerometer; autoplay; clipboard-write;
|
120 |
+
encrypted-media; gyroscope;
|
121 |
+
picture-in-picture; web-share"
|
122 |
+
allowfullscreen
|
123 |
+
>
|
124 |
+
</iframe>
|
125 |
+
</div>
|
126 |
+
|
127 |
+
"""
|
128 |
+
|
129 |
+
# Inserta el iframe en la aplicación de Streamlit
|
130 |
+
st.components.v1.html(html)
|
131 |
+
|
132 |
+
#####
|
133 |
+
|
134 |
# st.image(logo, width=700)
|
135 |
st.markdown('''
|
136 |
<br>
|
|
|
173 |
<hr>
|
174 |
""", unsafe_allow_html=True)
|
175 |
|
176 |
+
col1, col2, col3, col4 = st.columns(4)
|
177 |
col1.markdown("""
|
178 |
<a href="https://github.com/LRascon/data_world_jobs">Github</a>
|
179 |
""", unsafe_allow_html=True)
|
|
|
185 |
/DashboardVistazoelMercadoActual?:language=es-ES&publish=yes
|
186 |
&:display_count=n&:origin=viz_share_link">Tableau</a>
|
187 |
""", unsafe_allow_html=True)
|
188 |
+
col4.markdown("""
|
189 |
+
<a href="https://www.youtube.com/watch?v=G8PdiAwhbNM">YouTube</a>
|
190 |
+
""", unsafe_allow_html=True)
|
191 |
|
192 |
# Pagina Projects
|
193 |
if selected2 == "Análisis":
|