Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 新手:如果有问题要预测未来的成功与否,从哪里开始_Machine Learning_Data Mining_Classification_Pattern Recognition - Fatal编程技术网

Machine learning 新手:如果有问题要预测未来的成功与否,从哪里开始

Machine learning 新手:如果有问题要预测未来的成功与否,从哪里开始,machine-learning,data-mining,classification,pattern-recognition,Machine Learning,Data Mining,Classification,Pattern Recognition,我们有一个基于web的产品,允许用户预测商品的未来价值或需求,历史数据包含大约10万个示例,每个示例有大约5个参数 考虑一类称为预处理的数据: prediction { id: int predictor: int predictionDate: date predictedProductId: int predictedDirection: byte (0 for decrease, 1 for increase) valueAtPre

我们有一个基于web的产品,允许用户预测商品的未来价值或需求,历史数据包含大约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
}
我们可以定义一个成功的测试用例,在预测时,如果未来值检查点中的任意两个是有利的,则在预测时,对方向和值进行排序

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)
用户提交表单时,prediction类中的所有内容都是已知的,而predictionResult中的信息直到稍后才知道;理想情况下,模型或算法可以从我们三年的历史中得出,算法被应用于一个新的预测,我们可以得到一个概率,关于它是否会成功,我很高兴有一个布尔Y/N标志,关于这是否有趣

我对机器学习知之甚少,我正在努力通过材料来学习。但如果我能得到一些指导,这样我就可以研究和实践解决这样一个问题所需要的东西,那就太好了

谢谢

功能

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

培训、开发和测试数据

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

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

稍后,在您构建了一个能够在开发数据上获得良好性能的模型之后,您可能需要一个无偏的估计值,以确定分类器在新数据上的性能。为此,您将使用测试集来评估分类器在数据上的表现,而不是在开发数据时

分类器/ML包

在您拥有初步的特性集并将数据分割为培训、开发和测试之后,您就可以选择机器学习包和分类器了。一些支持多种分类器类型的好软件包包括:

JAVA JAVA python 您应该使用哪种分类器取决于许多因素,包括您希望做出的预测类型,例如,二进制、多类、您希望使用的功能类型以及您希望使用的训练数据量

例如,如果您只是想对用户的断言是否准确进行二进制分类,那么您可能想尝试一下。他们的基本公式仅限于做二元谓词。但是,如果您只需要这些,它们通常是一个不错的选择,因为它们可以生成非常精确的模型

然而,训练支持向量机所需的时间与训练数据的大小关系不大。要在大量数据上进行培训,您可能会决定使用以下内容。当在相同大小的数据集上训练随机林和支持向量机时,随机林通常会生成一个与支持向量机模型一样精确或几乎一样精确的模型。但是,随机林可以让您使用更多的训练数据,而使用更多的训练数据则会更有效

深入挖掘

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

-黑斯蒂已经发布了这本书的PDF格式。 特征

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

培训、开发和测试数据

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

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

稍后,在您构建了一个能够在开发数据上获得良好性能的模型之后,您可能需要一个无偏的估计值,以确定分类器在新数据上的性能。为此,您将使用测试集来评估分类器在数据上的表现,而不是在开发数据时

分类器/ML包

在您拥有初步的特性集并将数据分割为培训、开发和测试之后,您就可以选择机器学习包和分类器了。一些支持多种分类器类型的好软件包包括:

JAVA JAVA python 您应该使用哪种分类器取决于许多因素,包括您希望做出的预测类型,例如,二进制、多类、您希望使用的功能类型以及您希望使用的训练数据量

例如,如果您只是想对用户的断言是否准确进行二进制分类,那么您可能想尝试一下。他们的基本公式仅限于做二元谓词。但是,如果您只需要这些,它们通常是一个不错的选择,因为它们可以生成非常精确的模型

然而,训练支持向量机所需的时间与训练数据的大小关系不大。要在大量数据上进行培训,您可能会决定使用以下内容。当在相同大小的数据集上训练随机林和支持向量机时,随机林通常会生成一个与支持向量机模型一样精确或几乎一样精确的模型。但是,随机林可以让您使用更多的训练数据,而使用更多的训练数据则会更有效

深入挖掘

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

-黑斯蒂已经发布了这本书的PDF格式。
谢谢你,我一直在关注吴家富的讲座,一点一点地理解。但Anrews的教程内容非常丰富。谢谢你…谢谢你我一直在关注andrew ng的讲座,一点一点地理解。但Anrews的教程内容非常丰富。非常感谢。