Поскольку текстовые данные не могут быть переданы модели напрямую, я предлагаю вам использовать вложения для преобразования описания во вложения. Если в вашем наборе данных есть уникальные значения обозначений в целом, вы можете быстро кодировать обозначения. Для стран вы также можете горячо их кодировать или использовать символьные вложения для генерации встраивания на основе слов. Год и баллы не требуют предварительной обработки. Как я могу предположить по вашей проблеме, ваша проблема является проблемой регрессии. Вы можете попробовать регрессор повышения градиента Склеарна или регрессор случайных лесов или любой другой регрессор для получения значений.
def loadGloveModel(gloveFile):
print("Loading Glove Model")
f = open(gloveFile,'r')
model = {}
for line in f:
splitLine = line.split()
word = splitLine[0]
embedding = np.array([float(val) for val in splitLine[1:]])
model[word] = embedding
print("Done.",len(model)," words loaded!")
return model
Вы можете использовать это как (Этот файл можно загрузить с сайта перчаток.)
model=loadGloveModel("glove.6B.300d.txt")
def averagewEmbeddings(line):
line=str(line)
average=model['x']
length=0
line=line.split(' ')
for word in line:
#for alphabet in word:
length=length+1
try:
embed=model[word]
average=average+embed
except:
average=average
return ((average-model['x'])/length)
embeddings=[]
for index,sen in enumerate(data.description):
embeddings.append(averagewEmbeddings(sen))
будут иметь вложения всех ваших наборов данных, которые вы сможете позже добавить в свой фрейм данных и удалить столбец описания