{"id":23442134,"url":"https://github.com/ssiarhei115/cv-dbase-analysis","last_synced_at":"2025-04-09T21:48:30.029Z","repository":{"id":174460611,"uuid":"652208454","full_name":"ssiarhei115/CV-dbase-analysis","owner":"ssiarhei115","description":"HeadHunter CVs data base analysis ","archived":false,"fork":false,"pushed_at":"2023-06-13T06:32:23.000Z","size":19959,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-23T17:29:15.452Z","etag":null,"topics":["analysis","cv","data","data-science","resume"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssiarhei115.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-11T12:43:25.000Z","updated_at":"2023-10-31T10:06:24.000Z","dependencies_parsed_at":"2023-07-14T19:47:21.049Z","dependency_job_id":null,"html_url":"https://github.com/ssiarhei115/CV-dbase-analysis","commit_stats":null,"previous_names":["ssiarhei115/project1_cv","ssiarhei115/cv-dbase-analysis"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssiarhei115%2FCV-dbase-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssiarhei115%2FCV-dbase-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssiarhei115%2FCV-dbase-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssiarhei115%2FCV-dbase-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssiarhei115","download_url":"https://codeload.github.com/ssiarhei115/CV-dbase-analysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239000684,"owners_count":19565824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","cv","data","data-science","resume"],"created_at":"2024-12-23T17:28:48.647Z","updated_at":"2025-02-15T13:45:58.988Z","avatar_url":"https://github.com/ssiarhei115.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Анализ базы резюме из HeadHunter\r\n\r\n## Цель проекта\r\nПодготовка [базы резюме](https://drive.google.com/file/d/1i3hAJx1jWZFO3TPiHVi9A4yhE8TaJwlP/view?usp=sharing \"Link to database file on GoogleDrive\") компании HeadHunter к анализу и построению модели прогнозирования уровня заработной платы соискателей, исходя из информации, которую они указывают о себе.\r\n\r\n## Задачи проекта\r\nРеализация поставленной цели предусматривает решение следующих задач:\r\n\r\n1) исследование структуры данных\r\n2) преобразование данных\r\n3) выявление зависимостей в данных\r\n4) очистка данных\r\n\r\n\r\n## Реализация проекта\r\n\r\n### Исследование структуры данных\r\nИсходный DataFrame имеет структуру (44744, 12).\r\n\r\nВсе столбцы имеют тип данных 'object'. \r\n\r\nВ трех признаках присутствуют пропуски: \r\n- 'Последняя/нынешняя должность'\r\n- 'Последнее/нынешнее место работы'\r\n- 'Опыт работы'.\r\n\r\n### Преобразование данных\r\nНа этом этапе из комплексных строк, содержащих информацию о соискателях были выделены и добавлены в основной dataframe следующие признаки:\r\n\r\n* 'Образование'\r\n* 'Пол'\r\n* 'Возраст'\r\n* 'Опыт работы (месяц)'\r\n* 'Город'\r\n* 'Готовность к командировкам'\r\n* 'Готовность к переезду'\r\n* 'ЗП (RUB)' (перерасчет в RUB на [дату](https://drive.google.com/file/d/1QhnbyOEYOYfRrdMhoau0D9KeBEnBpj3A/view?usp=sharing \"Data file with exchange rates\") обновления резюме)\r\n* признаки-индикаторы для типов занятости и графика работы\r\n\r\nВ результате преобразовний основной dataframe имеет следующую структуру:\r\n\r\n+ RangeIndex: 44744 entries, 0 to 44743\r\n+ Data columns (total 23 columns)\r\n+ dtypes: bool(12), datetime64[ns](1), float64(2), int64(1), object(7)\r\n+ memory usage: 4.3+ MB\r\n\r\n### Выяление зависимости в данных\r\nДля разведывательного анализа использовался метод визуализации средствами Seaborn, Plotly. Исследованы/выявлены зависимости следующих признаков:\r\n\r\n* распределение признака «Возраст»\r\n* распределение признака «Опыт работы (месяц)»\r\n* распределение признака «ЗП (руб)» \r\n* зависимость медианной желаемой заработной платы («ЗП (руб)») от уровня образования («Образование»)\r\n* распределение желаемой заработной платы («ЗП (руб)») в зависимости от города («Город»)\r\n* зависимость медианной заработной платы («ЗП (руб)») от признаков «Готовность к переезду» и «Готовность к командировкам»\r\n* зависимость медианной желаемой заработной платы от возраста («Возраст») и образования («Образование»)\r\n* зависимость опыта работы («Опыт работы (месяц)») от возраста («Возраст»)\r\n\r\n### Очистка данных\r\n    Очистка данных - поиск и удаление выбросов (аномалий) -  наблюдений, существенно выбивающихся из рассматриваемого распределения и являющихся не типичными для выборки.\r\n    Основные статистических методы очистки данных:\r\n        * Метод межквартиального размаха \r\n        * Метод сигм\r\nНа начальном этапе в исследуемом массиве выявлен и удален 161 дубликат.\r\nТри признака содержали пропуски; все пропуски были удалены в столбцах «Последнее/нынешнее место работы», «Последняя/нынешняя должность», тогда как в столбце «Опыт работы (месяц)» пропуски были заполнены медианным значением.\r\nДалее очистка данных осуществлялась в 2 этапа: вруную удалены 89 выбросов по критерию 1e6 \u003c ЗП (RUB) \u003c1000, а также 7 выбросов с аномальным опытом, превышающим возраст соискателей; на втором этапе для очистки данных использовался метод сигм. \r\n\r\nУстановлено, что в пределы классического интервала +/- 3 сигмы попадает 99.75% выборки, что практически соответствует ожидаемому значению для нормального распределния. Однако, учитывая ассиметричность графика распределения, отметкой +3 сигмы отсекается большее количество выбросов, чем левой границей (-3 сигмы: 2 из 112). \r\nПри расширении верхней границы до +4 сигмы количество выбросов снижается до трех, в пределах интервала -3..+4 сигмы попадает 99.99% выборки. \r\n\r\n## Использованные инструменты и библиотеки\r\n* numpy 1.24.3\r\n* pandas 2.0.1\r\n* matplotlib 3.7.1\r\n* seaborn 0.12.2\r\n* plotly 5.14.1\r\n\r\n## Дополнительные источники:\r\n* [Нормальное распределение](https://ru.wikipedia.org/wiki/Нормальное_распределение)\r\n* [Метод межквартильного размаха](https://recture.ru/common/chto-takoe-pravilo-mezhkvartilnogo-razmaha/)\r\n* [Правило трех сигм](https://wiki.loginom.ru/articles/3-sigma-rule.html)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssiarhei115%2Fcv-dbase-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssiarhei115%2Fcv-dbase-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssiarhei115%2Fcv-dbase-analysis/lists"}