Эта система представляет собой путь руководства, который предсказывает служебную роль для людей, желающих устроиться на работу, но не знающих, что им подходит. В этой статье представлен обзор системы, разработанной с использованием 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/

П. Хотрагн, аспирант Университета Вокссена, Хайдарабад.

Интересы: машинное обучение, глубокое обучение и управление проектами.