我们拥有大量CSV格式的数据,其中包含一些数字元素,如下所示:
Year,BinaryDigit,NumberToPredict,JustANumber, ...other stuff
1954,1,762,16, ...other stuff
1965,0,142,16, ...other stuff
1977,1,172,16, ...other stuff
这里的事情是,第三列和之前的列之间存在很强的相关性。因此,我已经对数据进行了预处理,现在可以以我认为是完美的格式使用它:
1954,1,762
1965,0,142
1977,1,172
我想要的是对第三列中的值的谓词,并使用前两个作为输入。因此,在上述情况下,我希望输入1965,0返回142。在现实生活中,此文件有数千行,但是由于有某种模式,我想检索尽可能多的值。
到目前为止,我已经使用L inear Learner 算法在CSV文件上设置了火车作业,并具有以下设置:
label_size = 1
feature_dim = 2
predictor_type = regression
我还从中创建了一个模型,并设置了一个端点。调用它时,我会得到一个分数。
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
ContentType='text/csv',
Body=payload)
我的目标是获取第三列预测。我该如何实现?我已经阅读了很多与此有关的文档,但是由于我对AWS不太熟悉,因此我可能会为尝试使用的算法使用错误的算法。
(请随时编辑此问题以更适合AWS术语)
答案 0 :(得分:2)
对于csv输入,标签应位于第一列,如here所述:因此,您应预处理数据以将标签(要预测的列)放在左侧。
接下来,您需要确定这是回归问题还是分类问题。
如果您想预测一个尽可能接近真实数字的数字,那就是回归。例如,真值可能为4,而模型可能预测为4.15。如果需要整数预测,则可以对模型的输出进行四舍五入。
如果您希望预测成为少数几个类别之一,则存在分类问题。例如,我们可以对'North America'= 0,'Europe'= 1,'Africa'= 2等进行编码。在这种情况下,分数预测是没有意义的。
要进行回归分析,请使用'predictor_type' = 'regressor'
,对于超过2个类的分类,请按照here的说明使用'predictor_type' = 'multiclass_classifier'
。
回归的输出将仅包含'score'
字段,这是模型的预测。多类分类的输出将包含'predicted_label'
字段(该字段是模型的预测)以及'score'
字段(该字段是表示模型的置信度的概率的向量)。概率最高的索引将被预测为'predicted_label'
。输出格式记录在here中。
答案 1 :(得分:0)
predictor_type = regression
无法返回预测的标签,
the linear-learner documentation:
出于推理,线性学习器算法支持application / json,application / x-recordio-protobuf和text / csv格式。对于二元分类模型,它同时返回得分和预测标签。对于回归,它仅返回分数。
有关输入和输出文件格式的更多信息,请参阅Linear Learner Response Formats进行推断,以及Linear Learner Sample Notebooks。