【问题标题】:Machine learning which algorithm to choose机器学习选择哪种算法
【发布时间】:2024-04-20 18:05:01
【问题描述】:

我正在尝试建立一个基于用户意图的文章推荐系统。每个用户将选择一个意图。例子是:

1- 过上健康的生活

2- 放松和精神焕发

3- 找工作

4- 了解技术

等等。我已经定义了 20 个这样的意图。我从几个博客和网站及其链接中删除了网页内容。我需要根据选择的意图向用户建议相关链接。 问题:

我想这可以通过无监督机器学习算法得到最好的解决。这是正确的做法吗?

解决此问题的可能步骤(需要考虑可扩展性)或算法或最佳工具 (我更喜欢python)?我发现 genisim 库适合这个吗?

【问题讨论】:

  • 没有。好吧,开个玩笑……好吧,在*,你应该展示你已经尝试过的东西,而你只是在问一个非常广泛的问题。
  • @JosepValls :对于我的问题,我在底部解释了 2 个问题。我不认为这些范围很广。

标签: python machine-learning data-science


【解决方案1】:

关于这一点的所有 cmets 和答案都是正确的:没有办法在一开始就指定“最佳”模型。我添加这个答案是为了指出这背后原因的非技术讨论:No Free Lunch Theorem for Machine Learning,以及数学讨论here

希望这些链接对以后遇到此问题的人有用。

【讨论】:

    【解决方案2】:

    正如@Root 所说,许多其他人已经证明他们并不是适用于所有情况的最佳算法

    您必须构建模型并评估/调整/优化它们并测量它们的准确性。使用精度最高的单一算法(您还可以考虑性能、可扩展性、易于实现的参数)或混合算法(模型集成)作为首选模型。

    谈到您的问题,我认为神经网络是此类推荐的算法之一,并且很容易上手。稍后你还可以寻找分类树、深度学习等。

    我希望这有助于开始。

    【讨论】:

      【解决方案3】:

      一般来说,除了非常特殊的用例之外,没有人可以推荐“最佳”算法。

      深入思考变量与数据外观之间的关系。正确的算法要么像钟声一样清晰,要么需要实验。没有人能告诉你该用什么。

      【讨论】:

        【解决方案4】:

        首先,您需要了解您在寻找什么,从而了解问题/目标。你想弄清楚什么。然后要么把它写得很具体,然后把它变成统计问题。例如。我想要明天可能下雨的概率。 1)如果你想预测一个目标值,那就去监督学习。 2)如果不是,那么无监督学习。 3)你有什么价值观?离散的,分类的? 4)如果您正在寻找是/否类型的答案,请进行分类。 5)如果目标值可以是任意数字,则进行回归。 6)如果您不尝试预测目标值,那么您可以进行无监督学习。 7)您是否尝试将一些值放入离散组中,然后进行聚类。 8) 如果您想知道拟合的强度,请使用密度估计算法。

        阅读使用 Python/R 进行统计学习和机器学习的要素了解更多信息。快乐学习!

        【讨论】: