0

最近,我对数据分析很感兴趣。
所以我研究了如何做机器学习项目并自己做。
我了解到缩放在处理特征时很重要。
所以我在使用决策树或 LightGBM 之类的树模型时缩放了每个特征。
然后,我缩放时的结果更差。
我在互联网上搜索,但我得到的只是 Tree 和 Ensemble 算法对数据的方差不敏感。
我还买了一本 O'Relly 的“Hands-on Machine-learning”一书,但我无法得到足够的解释。
我可以得到更详细的解释吗?

4

2 回答 2

0

不要混淆树和集合(可能由模型组成,需要缩放)。树不需要缩放特征,因为在每个节点处,整个观察集除以其中一个特征的值:相对而言,左边的一切都小于某个值,而右边的 - 更多。那么有什么区别,选择什么比例呢?

于 2021-09-28T09:17:48.467 回答
0

虽然我不知道确切的符号和方程式,但答案与算法的大 O 符号有关。

大 O 表示法是一种表达算法在超大数据集上完成的理论上的更差时间的方法。例如,一个简单的循环遍历大小为n的一维数组中的每个项目,它的运行时间为O(n) - 也就是说,无论如何它总是以每个数组大小的比例时间运行。

假设您有一个 X,Y 坐标的二维数组,并且您将遍历 x/y 位置的每个潜在组合,其中 x 的大小为n, y 的大小为m,您的大 O 将是O(mn)

等等。Big O 用于比较不同算法在抽象上的相对速度,以便您可以尝试确定哪个更好用。

如果你在 n 的不同潜在大小上抓取 O(n),你最终会在你的图表上得到一条 45 度的直线。

当你进入更复杂的算法时,你可能会得到 O(n^2) 或 O(log n) 甚至更复杂的结果。- 通常尽管大多数算法都属于 O(n)、O(n^(some exponent))、O(log n) 或 O(sqrt(n)) - 显然还有其他算法,但通常大多数算法都属于这种情况前面或后面的系数形式会修改它们在图上的位置。如果您绘制这些曲线中的每一条曲线,您将很快看到哪些曲线更适合超大型数据集

这完全取决于你的算法编码得有多好,但它可能看起来像这样:(不要相信我的数学,我试着开始做,然后用谷歌搜索。)

拟合深度为“m”的决策树:

  • 朴素分析:2m-1 树 -> O(2m-1 nd log(n))。
  • 每个对象在给定深度仅出现一次:O(mnd log n)

和一个 Log n 图......即使有足够多的 n,也几乎没有变化,不是吗?

所以不管你的数据集有多大,这些算法在他们所做的事情上都非常有效,但由于图表上对数曲线的性质,它们也不能扩展(+1 n 的性能提升最差的是一开始,随着时间的增加,它逐渐趋于平稳,n)

于 2021-09-25T05:21:05.940 回答