相关文章:
- 李航《统计学习方法》第二章——用Python实现感知器模型(MNIST数据集)
- 李航《统计学习方法》第三章——用Python实现KNN算法(MNIST数据集)
- 李航《统计学习方法》第四章——用Python实现朴素贝叶斯分类器(MNIST数据集)
- 李航《统计学习方法》第六章——用Python实现逻辑斯谛回归(MNIST数据集)
- 李航《统计学习方法》第六章——用Python实现最大熵模型(MNIST数据集)
- 李航《统计学习方法》第七章——用Python实现支持向量机模型(伪造数据集)
- 李航《统计学习方法》第八章——用Python+Cpp实现AdaBoost算法(MNIST数据集)
- 李航《统计学习方法》第十章——用Python实现隐马尔科夫模型
看了决策树啊,就有那么几个疑问:
- 决策树是否只能处理特征值可数的情况
- 决策树是否无法处理不在训练集中出现的特征值
这几个疑问等以后有空的时候在慢慢探索吧!
决策树
按照传统不详述该算法,具体内容可以看《统计学习方法》第五章。
我实现的是ID3算法
这里只将书中算法贴出来
数据集
数据集没什么可以说的,和KNN那个博文用的是同样的数据集。
数据地址:https://github.com/WenDesi/lihang_book_algorithm/blob/master/data/train.csv
特征
将整个图作为特征,但需要二值化处理。
代码
计算信息增益的代码参考的是Avalon的博客
代码已放到Github上,代码注释中标识了书中伪代码的各步骤,因此还算易懂(吐槽一下,这代码相较之前的代码还真不太好写)
#encoding=utf-8
import cv2
import time
import logging
import numpy as np
im