Как правило, поскольку ваша переменная Range [kksId] является вашим целевым классом, вы сопоставляете каждую из этих строк с уникальным целым числом, вот пример того, как этого можно достичь в python:
import pandas as pd
def _categoricalToNumeric(dataset):
categoric_id_mapping = {}
curr_id_to_assign = 0
for row in dataset.index:
categorical_value = dataset.loc[row]
if categorical_value in categoric_id_mapping:
dataset.loc[row] = categoric_id_mapping[categorical_value]
else:
categoric_id_mapping[categorical_value] = curr_id_to_assign
dataset.loc[row] = curr_id_to_assign
curr_id_to_assign += 1
return dataset
df = pd.read_excel('DataModel.xlsx', index_col=0)
df['Range[kksId]'] = _categoricalToNumeric(df['Range[kksId]'])
Затем, что касается строкового объекта, в простом классификаторе они обычно отображаются в каждом символе в переменную. Пример:
R_r_DegPit1_In_St
R_r_DegPit1_In
становится:
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
R _ r _ D e g P i t 1 _ I n _ S t
R _ r _ D e g P i t 1 _ I n \0 \0 \0
Поскольку у вас будет столько переменных, сколько самой длинной строки в вашем наборе данных, для строк, которые не будут занимать все переменные, вы должны заполнить остальные переменные со значением, указывающим пустой символ. Вам также следует изменить значения символов на цифру c, однако важно не сбрасывать счетчик цифр c на основе каждого столбца. Результат может быть примерно таким:
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
3 1 4 1 5 10 11 6 12 13 2 1 7 14 1 8 9
3 1 4 1 5 10 11 6 12 13 2 1 7 14 0 0 0
Имейте в виду, что более продвинутые методы ML / DL обрабатывают свои строки по-разному.