【问题标题】:Which data to plot to know what model suits best for the problem?要绘制哪些数据以了解哪种模型最适合该问题?
【发布时间】:2020-04-29 11:50:20
【问题描述】:

对不起,我知道这是一个非常基本的问题,但由于我还是机器学习的初学者,确定哪种模型最适合我的问题仍然让我感到困惑,最近我使用了线性回归模型(导致r2_score 如此之低)并且用户提到我可以根据我的数据图的曲线使用某些模型,当我看到另一个编码器使用随机森林回归器时(导致r2_score 比线性好 30%回归模型),我不知道他/她怎么知道更好的模型,因为他/她没有提到它。我的意思是在我阅读的大多数网站中,他们将数据推送到他们认为最适合该问题的一些模型(例如:对于回归问题,模型可能使用线性回归或随机森林回归器)但在某些网站和一些人们说首先我们需要绘制数据,以便我们可以预测最适合的模型。我真的不知道我应该绘制数据的哪一部分?我认为使用seaborn pairplot 可以让我了解曲线的形状,但我怀疑这是正确的方法,我应该实际绘制什么?只有标签本身或功能本身或两者兼而有之?以及如何获得曲线的洞察力以了解之后可能的最佳模型?

【问题讨论】:

    标签: python machine-learning plot prediction


    【解决方案1】:

    这个问题太笼统了,但我会尽量概述一下如何选择模型。首先,您应该没有一般规则来选择要使用的模型系列,它更多的是通过尝试不同的模型并寻找哪个模型给出更好的结果来选择。您现在还应该知道通常您具有多维特征,因此绘制数据不会让您全面了解特征与目标的依赖性,但是要检查是否要拟合线性模型,您可以开始绘制目标与输入的每个维度,并查看是否存在某种线性关系。但是,我建议您拟合线性模型,并从统计的角度检查这是否相关(学生测试,smirnov 测试,检查残差......)。请注意,在实际应用中,线性回归不太可能是最好的模型,除非您进行大量特征工程。所以我建议你使用更高级的方法(RandomForests、XGboost...)

    【讨论】:

    • 是的,我读到有些人一直在说“先绘制数据”,我认为这可能是一般规则,因为它有点道理,通过绘制它我们可以学习曲线形状并从那,我们可以确定哪种模型可能最适合(例如线性曲线 -> 线性回归和逻辑曲线 -> 逻辑回归)。从我自己的经验来看,我已经这样做了(你可以开始绘制目标与输入的每个维度,看看是否存在某种线性关系),我很确定从图中它看起来是线性的,没有散射还有
    • 但话又说回来,线性回归模型不知何故让我失望了,我发现随机森林回归器到目前为止效果最好。我是否总是需要将数据推送到某些模型?在某些问题上,某些模型究竟如何比其他模型更好地工作(随机森林回归器如何比线性回归更好地工作)。另外,您是否有任何链接可以让我了解更多有关更高级方法的信息? (很难找到)
    • @potatostudent randomForests 比线性回归效果更好是正常的,线性是你可以构造的最简单的,它限制标签是输入的线性组合,通常是限制性的。同时,RandomForsts 允许您的模型构建非线性关系,因此它具有更大的灵活性。问题是,如果你有很大的灵活性,你会过度拟合训练数据,这就是人们使用 corss 验证来选择要使用的最佳模型的原因。
    【解决方案2】:

    如果你使用像sklearn这样的现成包,那么很多简单的模型,如SVM、RF等,只是单行,所以在实践中,我们通常会同时尝试几个这样的模型。

    【讨论】:

    • 对不起,你说的单线是什么意思?那么,更高级的模型适用于多个班轮吗?你有任何链接让我了解更多关于各种高级模型的信息吗?
    • 是的,单行意味着只有一行代码。对于高级模型,它们不仅是多个衬垫,还需要根据问题设计模型。最先进的模型涉及数学推导,但对于大多数人来说,他们只是调整现有模型,例如找到某种类型的神经网络的模板并调整训练数据的参数。你可以在 GitHub 上搜索,很多技术博客也附上他们的代码。
    猜你喜欢
    • 2015-07-09
    • 2020-07-02
    • 1970-01-01
    • 2021-03-17
    • 2012-01-15
    • 2016-11-19
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多