我有一个具有以下功能的数据集
data = {
description:'the tea was amazing, had great taste.'
country:'Chile'
year: 1980
designation:'random'
points: 80
}
我正在寻找一种使用这些功能来构建模型以预测点的方法。
描述似乎包含有关点的大量信息。
如何将这些数据输入模型以及哪个模型?
答案 0 :(得分:1)
由于文本数据无法直接提供给模型,因此建议您使用嵌入将描述转换为嵌入。如果您的数据集中总体上存在唯一的名称值,则可以对这些名称进行热编码。对于国家/地区,您也可以对其进行热编码,也可以使用基于字符的嵌入来生成基于单词的嵌入。年和点不需要预处理。我可以通过您的问题来假设,您的问题是回归问题。您可以尝试使用Sklearn的梯度增强回归器,随机森林回归器或任何其他回归器来获取值。
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
您可以将其用作(此文件可以从Gloves网站下载。)
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))
嵌入将包含所有数据集的嵌入,以后可以将其附加到数据框并删除描述列