Эта система представляет собой путь руководства, который предсказывает служебную роль для людей, желающих устроиться на работу, но не знающих, что им подходит. В этой статье представлен обзор системы, разработанной с использованием Python (машинное обучение).
Набор данных. Существующие наборы данных, такие как набор данных о вакансиях разработчика программного обеспечения¹ и Google Job Skills², хорошо подходят для соответствующих компаний (или) навыков. Но эта работа предназначена для набора данных, который фокусируется только на прогнозировании рабочих ролей.
Итак, набор данных был разработан на основе собраний в режиме реального времени всего класса студентов с соответствующими атрибутами, т. е. навыки, годы опыта, CGPA, и рабочие роли были назначены для каждого набора навыков в соответствии с требованиями Glassdoor⁵. Исходный набор данных содержит 32 строки и 13 столбцов, всего 12 классов, и он был увеличен до 62 строк и 22 столбцов. Кроме того, после EDA оно было разделено на соотношения (80,20) и (70,30) для разных алгоритмов.
Как мы видим выше, исходный набор данных не имеет таких атрибутов, как годы опыта, и он еще меньше по размеру, тогда как расширенная версия имеет больший размер, и атрибуты были увеличены для каждого навыка соответственно.
Тепловая карта расширенного набора данных была создана с использованием приведенного ниже фрагмента:
corr = dataset.corr() corr.style.background_gradient(cmap='coolwarm')
Теперь для прогнозирования набора данных о роли работы необходимо предварительно обработать и сбалансировать, чтобы избежать недообучения/переобучения и получить точные результаты. В рамках предварительной обработки кодирование меток было выполнено для каждого навыка, которому присвоены значения Да-1 и Нет-0. Ниже приведен короткий код, представляющий часть кодирования:
# preprocessing from sklearn import preprocessing # label_encoder object knows how to understand word labels. label_encoder = preprocessing.LabelEncoder() # Encode labels in column 'species'. dataset['skillset']= label_encoder.fit_transform(dataset['skillset']) dataset['skillset'].unique()
Теперь ниже приведен фрагмент для заполнения значений nan после кодирования метки в рамках предварительной обработки.
# replacing na values dataset["SNO"].fillna( method ='ffill', limit = 1, inplace = True)
Затем предварительная обработка была выполнена как для исходного набора данных, так и для расширенного набора данных. Теперь функции были извлечены для классификаторов Дерево решений, XGBoost, и SVM с коэффициентом разделения (80:20). , (70:30) и (80:20). На приведенном ниже рисунке показаны важные функции для каждого классификатора:
- Дерево решений-
- XGBoost-
- SVM-
Теперь, на основе извлеченных функций, данные были обучены для каждого классификатора и получили точность, как показано ниже:
Исходная точность набора данных для каждого классификатора Дерево решений: 14,28, SVM: 30, XGBoost: 90
Увеличенная точность набора данных для каждого классификатора Дерево решений: 50, SVM: 40, XGBoost: 93,3
Поскольку мы видим, что точность и характеристики расширенного набора данных намного лучше, чем исходные данные, дополненный набор данных был взят в качестве основного набора данных, используемого для этой системы.
Теперь прогнозирование рабочей роли было сделано на основе набора навыков и многолетнего опыта с соответствующим CGPA. Ниже приведен результат, полученный после предсказания:
Прогноз, основанный на введенных данных, составляет Разработчик программного обеспечения.
Чтобы завершить эту систему как конечную и развернуть ее, необходимо выполнить постобработку с использованием h5/hdf5 (файл весов) для развертывания в Интернете с помощью flask/Django/Streamlit.
В рамках этой системы первоначальная разработка внешнего интерфейса была выполнена с использованием пользовательского ввода навыков, таких как машинное обучение, глубокое обучение, обработка изображений, Java, Python, HTML, CSS, NLP, язык C, MYSQL и ползунок для CGPA с использованием HTML, Java-Script и CSS. Фрагмент примера основного блока HTML показан ниже:
<h1>Career Guidance System</h1> Machine learning <input type="char" id="principal" list="experience"> <datalist id="experience"> <option value="Yes">Yes</option> <option value="No">No</option> </datalist> <br/>....Similarly, to the remaining attributes in the UI
Этот фрагмент показывает ползунок для CGPA:
CGPA <input type="range" id="rate" min=1 max=4 value=3.24 step=0.5 onchange="updateRate()"> <span id='rate_val'> 3.24 </span>% <br/>
На данном рисунке показан пользовательский интерфейс для Системы профориентации:
Эта статья была мотивирована, чтобы показать систему профориентации, которая помогает предсказать роль работы для соответствующих наборов навыков. Для следующего блога я скоро буду работать над сбором большего набора данных и развертыванием его в качестве конечной системы со всеми необходимыми шагами.
Ниже приведены ссылки, использованные для разработки этой системы, и некоторые из них используются в этой статье:
[1]: https://www.kaggle.com/datasets/samrat77/indeed-software-engineer-job-dataset
[2]: https://www.kaggle.com/datasets/niyamatalmass/google-job-skills
[3]: Вулансари, Р.Э., Шакти, Р.Х., Амбияр, А., Гиатман, М., Сях, Н., и Вахинуддин, В. (2022). Экспертная система для раннего определения карьеры на основе множественного интеллекта Говарда Гарднера. Journal of Applied Engineering and Technology Science (JAETS), 3(2), 67–76.
[4]: Анас, И., и Хамза, С.Р.А. (2022). Прогнозирование карьерной адаптации новоиспеченных выпускников с учетом личностных факторов. Европейский журнал обучения и развития, 46(3/4), 302–316.
[5]: https://www.glassdoor.co.in/Jobs/Glassdoor-Jobs-E100431.htm
Свяжитесь со мной @ https://www.linkedin.com/in/hotragn-pettugani/
П. Хотрагн, аспирант Университета Вокссена, Хайдарабад.
Интересы: машинное обучение, глубокое обучение и управление проектами.