Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| import pickle | |
| import json | |
| import joblib as jb | |
| # load models | |
| model = jb.load('model.pkl') | |
| # load data | |
| df = pd.read_csv('DataScienceSalaries.csv') | |
| map_ex = {'SE': 'Senior-level', 'MI': 'Mid-level', 'EN': 'Entry-level', 'EX': 'Executive-level'} | |
| map_ex_inverse = {v: k for k, v in map_ex.items()} | |
| map_type = {'FT': 'Toàn thời gian', 'PT': 'Bán thời gian', 'CT': 'Hợp đồng', 'FL': 'Tự do'} | |
| map_type_inverse = {v: k for k, v in map_type.items()} | |
| map_size = {'S': 'Nhỏ', 'M': 'Vừa', 'L': 'Lớn'} | |
| map_size_inverse = {v: k for k, v in map_size.items()} | |
| map_job = { | |
| "Principal Data Scientist": "Chuyên gia Khoa học Dữ liệu Cấp cao", | |
| "ML Engineer": "Kỹ sư Máy học", | |
| "Data Scientist": "Nhà khoa học Dữ liệu", | |
| "Data Analyst": "Nhà phân tích Dữ liệu", | |
| "Machine Learning Scientist": "Nhà khoa học Máy học", | |
| "AI Scientist": "Nhà khoa học Trí tuệ Nhân tạo", | |
| "Director of Data Science": "Giám đốc Khoa học Dữ liệu", | |
| "Data Engineering Manager": "Quản lý Kỹ thuật Dữ liệu", | |
| "Data Engineer": "Kỹ sư Dữ liệu", | |
| "Machine Learning Engineer": "Kỹ sư Máy học", | |
| "Machine Learning Developer": "Nhà phát triển Máy học", | |
| "Big Data Engineer": "Kỹ sư Big Data", | |
| "Business Intelligence Developer": "Nhà phát triển Trí tuệ Kinh doanh", | |
| "BI Data Analyst": "Nhà phân tích Dữ liệu BI", | |
| "Lead Data Analyst": "Trưởng nhóm Nhà phân tích Dữ liệu", | |
| "Lead Data Engineer": "Trưởng nhóm Kỹ sư Dữ liệu", | |
| "Lead Data Scientist": "Trưởng nhóm Nhà khoa học Dữ liệu", | |
| "Research Scientist": "Nhà khoa học Nghiên cứu", | |
| "Data Science Manager": "Quản lý Khoa học Dữ liệu", | |
| "Product Data Analyst": "Nhà phân tích Dữ liệu Sản phẩm", | |
| "Head of Data": "Trưởng phòng Dữ liệu", | |
| "Analytics Engineer": "Kỹ sư Phân tích", | |
| "Data Science Consultant": "Tư vấn Khoa học Dữ liệu", | |
| "Machine Learning Infrastructure Engineer": "Kỹ sư Cơ sở hạ tầng Máy học", | |
| "Applied Data Scientist": "Nhà khoa học Dữ liệu Ứng dụng", | |
| "Data Analytics Engineer": "Kỹ sư Phân tích Dữ liệu", | |
| "Data Architecture": "Kiến trúc Dữ liệu", | |
| "Database Administrator": "Quản trị viên Cơ sở dữ liệu", | |
| "Software Engineer": "Kỹ sư Phần mềm", | |
| "Statistician": "Nhà thống kê", | |
| "Product Manager": "Quản lý Sản phẩm", | |
| "Marketing Data Analyst": "Nhà phân tích Dữ liệu Tiếp thị", | |
| "Financial Data Analyst": "Nhà phân tích Dữ liệu Tài chính", | |
| "Data Science Engineer": "Kỹ sư Khoa học Dữ liệu", | |
| "Principal Data Engineer": "Chuyên gia Kỹ sư Dữ liệu Cấp cao", | |
| "AI Engineer": "Kỹ sư Trí tuệ Nhân tạo", | |
| "Data Operations Analyst": "Nhà phân tích Hoạt động Dữ liệu", | |
| "Business Data Analyst": "Nhà phân tích Dữ liệu Kinh doanh", | |
| "Applied Machine Learning Engineer": "Kỹ sư Máy học Ứng dụng", | |
| "Data Product Manager": "Quản lý Sản phẩm Dữ liệu", | |
| "Data Specialist": "Chuyên gia Dữ liệu", | |
| "Head of Data Science": "Trưởng phòng Khoa học Dữ liệu", | |
| "Machine Learning Operations Engineer": "Kỹ sư Hoạt động Máy học", | |
| "Data Architect": "Kiến trúc sư Dữ liệu", | |
| "Data Science Instructor": "Giảng viên Khoa học Dữ liệu", | |
| "Principal Data Analyst": "Chuyên gia Phân tích Dữ liệu Cấp cao", | |
| "Senior Data Scientist": "Nhà khoa học Dữ liệu Cấp cao", | |
| "Senior Data Engineer": "Kỹ sư Dữ liệu Cấp cao", | |
| } | |
| map_job_inverse = {v: k for k, v in map_job.items()} | |
| def run(): | |
| st.markdown("<h1 style='text-align: center;'>Mô hình dự đoán lương</h1>", unsafe_allow_html=True) | |
| # description | |
| st.subheader('Vui lòng kiểm tra mức lương của bạn tại đây.') | |
| with st.form('key=form_prediction'): | |
| year = st.selectbox('Năm làm việc', df['work_year'].unique()) | |
| experience_select = st.selectbox('Cấp độ kinh nghiệm', map_ex.values()) | |
| experience = map_ex_inverse[experience_select] | |
| employment_select = st.selectbox('Hình thức hợp đồng', map_type.values()) | |
| employment = map_type_inverse[employment_select] | |
| job_select = st.selectbox('Vị trí công việc', map_job.values()) | |
| job = map_job_inverse[job_select] | |
| residence = st.selectbox('Quốc tịch', sorted(df['employee_residence'].unique())) | |
| remote = st.selectbox('Làm việc từ xa [%]', df['remote_ratio'].unique()) | |
| location = st.selectbox('Vị trí công ty', sorted(df['company_location'].unique())) | |
| size_select = st.selectbox('Quy mô công ty', map_size.values()) | |
| size = map_size_inverse[size_select] | |
| submitted = st.form_submit_button('Dự đoán') | |
| inf = { | |
| 'work_year': year, | |
| 'experience_level': experience, | |
| 'employment_type': employment, | |
| 'job_title': job, | |
| 'employee_residence': residence, | |
| 'remote_ratio': remote, | |
| 'company_location': location, | |
| 'company_size': size | |
| } | |
| data_inf = pd.DataFrame([inf]) | |
| st.dataframe(data_inf) | |
| if submitted: | |
| # Predict using bagging | |
| y_pred_inf = model.predict(data_inf) | |
| st.write('Với kinh nghiệm này bạn sẽ nhận được mức lương 1 năm khoảng') | |
| st.write('# $', str(int(y_pred_inf))) | |
| st.write( | |
| 'LƯU Ý: Hãy nhớ rằng mô hình này không chính xác 100%, vui lòng kiểm tra lại với một trang web khác về tiền lương như Glassdoor') | |
| if __name__ == '__main__': | |
| run() | |