В настоящее время я работаю в следующем наборе данных , где у меня есть несколько столбцов с разными значениями, и я хочу классифицировать каждую строку в правильную категорию - в данном случае, правильный инженер.
Цель: На основе категории, категории проблемы, затронутых устройств, причины создания, статуса проблемы и приоритета определить, к какому инженеру относятся заявки. Это проблема классификации, и для ее решения я использую искусственную нейронную сеть.
Structure of the dataset
Category | Problem Category | Affected devices | Reason for creating | Issue status | Priority | Security Engineer
Cybersecurity Penetration breach Personal user devices Hourly analysis Transferred 3 K. Schulz
Cybersecurity Lack of Cert Company main devices Hourly analysis Closed 2 U. Frank
IoT Malware installed Personal user devices Hourly analysis Transferred 2 L. Tolso
....
....
# Matrix of features
X = dataset.iloc[:,:-1].values
# dependent variable: engineers
y = dataset.iloc[:,-1:].values
# Encode the categorical data to numerical data
# The priority column will not be encoded because it is already in numerical data, i.e., 0,1,2,3.
labelEncoder_X_category = LabelEncoder()
labelEncoder_X_problem_category = LabelEncoder()
labelEncoder_X_affected_devices = LabelEncoder()
labelEncoder_X_reason_for_creating = LabelEncoder()
labelEncoder_X_issue_status = LabelEncoder()
X[:, 0] = labelEncoder_X_category.fit_transform(X[:, 0])
X[:, 1] = labelEncoder_X_problem_category.fit_transform(X[:, 1])
X[:, 2] = labelEncoder_X_affected_devices.fit_transform(X[:, 2])
X[:, 3] = labelEncoder_X_reason_for_creating.fit_transform(X[:, 3])
X[:, 4] = labelEncoder_X_issue_status.fit_transform(X[:, 4])
# Create dummy variable
# Column zero (Category) will be used to split the encoded data of this column into multiple columns with many 0s and 1s
oneHotEncoder_category = OneHotEncoder(categorical_features = [0])
# Once the column zero has been separated into columns of 0s and 1s, attach it to the current matrix of features
X = oneHotEncoder_category.fit_transform(X).toarray()
print(X)
# Split the data into training and test set
# Not yet implemented because I want to solve my questions
# Feature scaling
# Not yet implemented because I want to solve my questions
Вопросы
Все столбцы были закодированы в числовые значения, за исключением столбца «Приоритет», и только нулевой столбец (категория) был разбит на несколько столбцов 0 и 1, но мне также нужно разделить другие столбцы на 0 и 1 или достаточно только одного столбца?
Я обеспокоен тем, что мне нужно избегать проблемы отсутствия мультиколлинеарности, то есть я не могу включить все фиктивные переменные в мою модель, но как я могу применить этот же принцип, если кодирую остальные столбцы в 0 и 1с?
Я пытался максимально подробно изложить ситуацию, в которой я находился, и надеюсь, что никого не смутил, но если бы я это сделал, не стесняйтесь поправлять меня или задавать мне больше вопросов, я был бы более чем рад помочь вам. .