主页

决策树算法

算法原理

树模型

决策树根节点开始一步步走到叶子节点(决策), 所有的数据最终都会落到叶子节点, 利用决策树既可以做分类也可以做回归.

树的组成

  • 根节点: 第一个选择点
  • 非叶子节点与分支: 中间过程
  • 叶子节点: 最终的决策结果

决策树的训练是从给定的训练集构造(从根节点开始选择特征, 如何进行特征切分)出来一棵树, 然后将测试数据根据构造出来的树模型从上到下去走一遍, 得到决策结果.

一旦构造好了决策树, 那么分类或者预测任务就很简单了, 只需跟着树走一遍决策流程就可以了, 那么难点就在于如何构造出来一颗树.

阅读更多

用树回归方法画股票趋势线

原文: 机器学习_用树回归方法画股票趋势线

本篇的主题是分段线性拟合, 也叫回归树, 是一种集成算法, 它同时使用了决策和线性回归的原理, 其中有两点不太容易理解, 一个是决策树中熵的概念, 一个是线性拟合时求参数的公式为什么是由矩阵乘法实现的. 如需详解, 请见前篇:

画出股票的趋势线

我们常在股票节目里看到这样的趋势线:

趋势线

阅读更多

常见的时间序列趋势判别算法

本文介绍常见的时间序列趋势判别算法:

  1. 多项式拟合(斜率)
  2. Mann-Kendall 趋势检验检验
  3. Cox-stuart 趋势检验

多项式拟合(最小二乘法)

基本原理

核心是使用最小二乘法见序列拟合成一条直线, 然后根据直线的斜率 k 判断序列的走势. 如果返回的是正数则正增长, 如果返回的是负数则为下降, 如果为 0 则表示没有趋势.

阅读更多

Monkey Patching in Go

本文是 Monkey Patching in Go 的阅读理解.

原文 Monkey Patching in Go

Many people think that monkey patching is something that is restricted to dynamic languages like Ruby and Python. That is not true however, as computers are just dumb machines and we can always make them do what we want! Let’s look at how Go functions work and how we can modify them at runtime. This article will use a lot of Intel assembly syntax, so I’m assuming you can read it already or are using a reference while reading.

阅读更多

python 的 metaclass 到底是什么

文章地址: https://stackoverflow.com/questions/100003/what-are-metaclasses-in-python?answertab=votes#tab-top

Classes as objects

Before understanding metaclasses, it helps to understand Python classes more deeply. Python has a very peculiar idea of what classes are, which it borrows from the Smalltalk language.

In most languages, classes are just pieces of code that describe how to produce an object. That is somewhat true in Python too:

>>> class ObjectCreator(object):
...       pass

>>> my_object = ObjectCreator()
>>> print(my_object)
<__main__.ObjectCreator object at 0x8974f2c>

阅读更多