gpt4 book ai didi

machine-learning - 新手: where to start given a problem to predict future success or not

转载 作者:行者123 更新时间:2023-11-30 08:50:51 25 4
gpt4 key购买 nike

我们有一个基于Web的产品,允许用户对商品的 future 值(value)(或需求)进行预测,历史数据包含大约10万个示例,每个示例大约有5个参数;

考虑一类称为预测的数据:

prediction {
id: int
predictor: int
predictionDate: date
predictedProductId: int
predictedDirection: byte (0 for decrease, 1 for increase)
valueAtPrediciton: float
}

以及一个测量预测结果的配对结果类:

predictionResult {
id: int
valueTenDaysAfterPrediction: float
valueTwentyDaysAfterPrediction: float
valueThirtyDaysAfterPrediction: float
}

我们可以定义一个成功的测试用例,其中在预测时考虑方向和值(value)时,是否有任何两个 future 值(value)检查点是有利的。

success(p: prediction, r: predictionResult): bool = 
count: int
count = 0

// value is predicted to fall
if p.predictedDirection = 0 then
if p.valueAtPrediciton > r.valueTenDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton > r.valueTwentyDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton > r.valueThirtyDaysAfterPrediction then count = count + 1

// value is predicted to increase
else
if p.valueAtPrediciton < r.valueTenDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton < r.valueTwentyDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton < r.valueThirtyDaysAfterPrediction then count = count + 1

// success if count = 2 or count = 3
return (count > 1)

预测类中的所有内容在用户提交表单的那一刻就已知,而预测结果中的信息直到稍后才知道;理想情况下,模型或算法可以从我们三年的历史中得出,该算法应用于新的预测,我们可以得到它是否成功的概率(我很高兴有一个 bool Y/N 标志不管这是否有趣)。

我对机器学习了解不多,我正在尝试通过 Material 来了解。但如果我能得到一些指导,这样我就可以研究和实践解决此类问题所需的内容,那就太好了。

谢谢

最佳答案

功能

您需要做的第一件事是决定使用哪些信息作为证据来将用户的预测分类为准确或不准确。例如,您可以从简单的内容开始,例如进行预测的用户的身份,以及他们对相同或相似商品进行预测时的历史准确性。这些信息将作为特征提供给下游机器学习工具,用于对用户的预测进行分类。

培训、开发和测试数据

您需要将 10 万个历史示例分为三个部分:训练、开发和测试。您应该将大部分数据(例如 80%)放入您的训练集中。这将是您用来训练预测准确性分类器的数据集。一般来说,用于训练分类器的数据越多,生成的模型就越准确。

另外两个数据集(开发数据集和测试数据集)将用于评估分类器的性能。您将使用开发集来评估分类器不同配置或特征表示变化的准确性。它被称为开发集,因为您在开发模型或系统时使用它来持续评估分类性能。

稍后,在您构建了一个在开发数据上实现良好性能的模型后,您可能需要对分类器在新数据上的执行情况进行无偏估计。为此,您将使用测试集来评估分类器对您用于开发分类器的数据以外的数据的处理效果。

分类器/机器学习包

获得初步功能集并将数据分为训练、开发和测试后,您就可以选择机器学习包和分类器了。一些支持多种类型分类器的好包包括:

您应该使用哪种分类器取决于许多因素,包括您想要进行哪种类型的预测(例如,二元、多类)、您想要使用哪种特征以及您想要的训练数据量使用。

例如,如果您只是对用户的预测是否准确进行二元分类,您可能需要尝试 support-vector-machines (SVMs) 。他们的基本公式仅限于进行二元预测。但是,如果这就是您所需要的,那么它们通常是一个不错的选择,因为它们可以产生非常准确的模型。

但是,训练 SVM 所需的时间与训练数据的大小成正比。要训​​练大量数据,您可能会决定使用类似 random forests 的内容。 。当随机森林和 SVM 在相同大小的数据集上进行训练时,随机森林通常会生成与 SVM 模型一样准确或几乎一样准确的模型。然而,随机森林可以让您使用更多的训练数据,并且使用更多的训练数据将typically increase the accuracy of your model .

深入挖掘

这里有一些关于机器学习入门的其他好地方的提示

关于machine-learning - 新手: where to start given a problem to predict future success or not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com