什么机器学习算法是合适的?

时间:2015-06-09 12:36:28

标签: algorithm machine-learning

根据天气和葡萄的特性,即糖水平,Ph值,酸度,我正在研究葡萄收获最可能的时期。我有两个数据集,我正在考虑如何将它们合并在一起:一个是2003 - 2013年期间一些意大利葡萄园的收获前分析数据,另一个是该十年的天气。我想做的是从我的样品到收获时学习,给出最佳糖含量,Ph和酸度的范围,并给出天气预报。 我认为一些强化学习方法可行。由于收获前的分析在葡萄成熟期间进行了大约5次,我认为那些可能是我介入的状态,而天气条件可能是"概率"从一个州到另一个州。 然而,我不确定哪种算法最适合每个州和每个"概率"取决于几个变量。我被告知隐藏马尔可夫模型可以工作,但在我看来,我的问题并不完全适合模型。 你有什么建议吗? Thx提前

2 个答案:

答案 0 :(得分:3)

这与实际算法无关,但是你要遇到的问题是天气非常局部。相信或不相信,一个葡萄园的天气可能与另一个葡萄园完全不同。如果你在每个葡萄园放置雨量计,你会发现它。为了获得非常好的结果,您需要在每个葡萄园都有一个迷你气象站。如果没有这个,您最好的选择是在天气测量的附近仅使用葡萄园。例如,如果您的数据来自机场,则只能使用机场旁边的葡萄园。

当您可以控制操作时,强化学习是合适的。它就像一只猴子按下按钮。你按下一个按钮然后感到震惊,所以你不要再按下那个按钮了。在这里,您有一个被动数据集,无法进行实验操作,因此强化学习不适用。

这里有一组复杂的不受控制的输入,天气数据,受控输入(收获时间),以及几个输出参数,糖等。鉴于这些数据,您想要预测未来的收获时间,未知的天气模式。

一般来说,你正在做的是sensitivity analysis:试图弄清楚你的因素如何影响发生的结果。棘手的部分是结果可能是由一些非显而易见的模式驱动的。例如,可能是3周的干旱,然后是2周的大雨意味着最好的收获将是65天,或类似的东西。

因此,您需要做的是对数据进行特征化以便以可能的方式对其进行表征,然后进行灵敏度分析。如果分析具有很强的相关性,那么您已经找到了解决方案。如果没有,那么你必须找到一种不同的方法来强化数据。例如,您的特征化可能是下雨超过2英寸的天数,或者可能是没有下雨的大部分天数,或者可能是明亮日照的总天数。可能会有多个功能组合在一起构成解决方案。选项仅受您的想象力限制。

当然,正如我上面所说,美中不足的是,你的天气数据只会粗略估计特定葡萄园的实际和实际天气,因此数据中会有噪音,可能会产生如此大的噪音。无法获得好成绩。

为什么你真的不太关心天气

回到数据,有不可靠的天气信息实际上不是问题,因为你实际上并不太关心天气。原因是双重的。首先,你要回答的问题不是什么时候收获葡萄,而是是否等待收获。葡萄酒商可以随时测量葡萄的当前糖含量。因此,他只需要决定,"我现在应该用糖X%收获葡萄,还是我应该等待,并且可能后来获得更好的糖Z%?要回答这个问题,你需要的真实数据不是天气,它是随着时间的推移获得的一系列糖/酸度读数。您想要预测的是,在某种情况下,葡萄会变得更好还是变得更糟。

其次,葡萄藤具有最佳的水分含量。如果葡萄藤变得太干,那就太糟糕了,如果它变得太湿而不是很糟糕。你无法预测藤蔓对天气的湿度。有些土壤保持水分,其他土壤则是沙质。沙质葡萄园需要比粘土葡萄园更多的雨水才能达到相同的水分含量。此外,葡萄酒商可以浇灌他的葡萄园,完全使降雨模式无效。因此,天气几乎不是一个因素。

答案 1 :(得分:0)

我同意Tyler的观点,从可行的角度来看,天气可能会损害您的分析。但是,我认为这是供您测试和发现的! - 可能会有一些有趣的数据。

我不确定你的测试究竟是什么,但一个简单的启动方法可能是使用svm(甚至逻辑回归,因为你想要概率)将其变成分类问题,并使用所有数据作为算法的输入 - 假设你知道哪些年是好收成年。您甚至可以单独测试每个变量,看看它如何影响您的性能。我建议你这样做,只要因为网上有大量的资源和SO上的人可以帮助你调整你的算法。

如果您对此有所了解,我会按照您之前的建议,尝试使用HMM-因为它会告诉您哪一天可能是收获的最佳日子。这是天气可能受到伤害的地方,但您将从更简单的实验中了解更多有关您的数据的信息。

我对机器学习的想法是,虽然有关于何时选择哪种算法的指导原则并不总是一成不变,你可以稍微改变一下你的问题并尝试一种新方法解决问题,具体取决于你必须自由地使用数据。祝你好运,玩得开心!

相关问题