【问题标题】:Basic machine learning [closed]基本机器学习 [关闭]
【发布时间】:2011-06-16 12:53:12
【问题描述】:

我正在开发一个工具,我需要根据多个变量的组合来预测变量的值。

实现需要使用 Java 编程语言。

谢谢。

【问题讨论】:

  • 这是作业吗?
  • no :) 我知道我的问题很抽象...我需要一个想法来开始我的工作...
  • 我强烈推荐你看看 Weka (cs.waikato.ac.nz/ml/weka) - 非常好的基于 Java 的机器学习工具
  • 如果没有更多详细信息,您收到的建议不太可能对您的特定任务非常有用。

标签: java machine-learning


【解决方案1】:

有一个很好的斯坦福公开课程关于机器学习的视频讲座等。
看看here。

【讨论】:

    【解决方案2】:

    如果您想从简单的事情开始,请考虑使用准线性模型,例如逻辑回归或线性判别分析:它们很容易理解,并且互联网上到处都有它们的代码。还要考虑一些更简单的(单节点)神经模型(感知器、delta 规则等):它们非常容易编程。如果你想追求这个,我建议你买一本书,比如 Weiss 和 Kulikowski 的《计算机系统学习》。

    【讨论】:

      【解决方案3】:

      也许您可以先在维基百科中搜索各种classification algorithms,例如k-nearest-neighbour、SVM 或neural network

      【讨论】:

        【解决方案4】:

        我也会从 K-Nearest-Neighbours 开始 - 它们是最简单的 - 并且可以尝试不同的数据预处理、距离测量等。它们也会导致非常好的(尽管非常非常慢)预测。

        【讨论】:

          【解决方案5】:

          如果要预测的变量是连续变量,那么回归模型是关键。 那里有许多回归技术,包括最小二乘法、多项式模型、ANN 和 SVM。 当然,每种技术都可能有其假设或参数。

          MATLAB 是有据可查的计算环境之一。 我建议访问有关非线性回归的 MATLAB 文档的以下页面: http://www.mathworks.com/help/stats/nonlinear-regression-1.html#btcgzas-1

          您可以首先使用全局搜索方法(例如遗传算法 GA)来调整给定多项式回归模型的参数。

          对于预测离散变量,列出的回归模型也可以在给定阈值的情况下应用。决策树是一个不错的选择。

          【讨论】:

            【解决方案6】:

            Weka 将满足您的需求。它具有回归并用 Java 实现。

            【讨论】:

              【解决方案7】:

              听起来多元线性回归就可以了。

              【讨论】:

                【解决方案8】:

                在深入研究代码之前,由于您是初学者,我建议您阅读基础知识并牢牢掌握。您不需要阅读博士论文,但至少 SVM、逻辑回归和神经网络中的基本术语会有所帮助。互联网上有大量来自斯坦福大学、Coursera 课程和其他答案中建议的书籍的材料。

                尽管互联网上有现成的代码可供您使用,但我之所以说您需要阅读基础知识,是因为在典型的分类器(例如 SVM、神经网络甚至逻辑回归)中,有您需要调整的各种参数,如果不了解基础知识,使用这些软件包会很困难且令人困惑。当我还是初学者时,我也有同样的经历。

                通过深入了解如何在 SVM 中处理倾斜数据集、如何调整 Logistic 回归的参数,甚至如何减少数据集的维度,这将使您的实施更快、更高效——即方式你可以获得更好的准确性。否则,直接研究代码可能会让您再次回到这里并提出一些基本问题。我希望这会有所帮助!

                【讨论】:

                  【解决方案9】:

                  如果这是一个回归问题,我建议您从 Matlab 中的逻辑或线性回归之类的东西开始。有图书馆,你可以得到它周围的代码。通过这种方式,首先通过比较样本内误差(来自您考虑用于生产的数据)和样本外误差(根据未考虑进行这些预测的数据来测试您的预测)来测试并找到您需要的特征和训练数据量。如果训练数据较少,请使用较少的特征或正则化。如果特征的数量和顺序非常大且难以确定,请移至中性网络或 SVM(请参阅,如果有 Java 的 SVM 库),当您在 Matlab 中拥有完美的系统时,然后将其部署在 Java 中。 据我所知,ML 系统在适合实际使用之前需要进行大量的手动微调,而像 Matlab/Ocatve 这样的环境是这种微调的最佳平台。

                  【讨论】:

                    猜你喜欢
                    • 2017-12-25
                    • 2018-02-07
                    • 2017-03-20
                    • 2013-08-28
                    • 2013-02-04
                    • 2018-11-16
                    • 1970-01-01
                    • 2020-03-06
                    • 2018-02-20
                    相关资源
                    最近更新 更多