《机器学习实战》

有道笔记原文

机器学习实战

Github代码

第一章 机器学习基础

  1. 2007年选出的十大数据挖掘算法
    C4.5决策树、K-均值(K-mean)、支持向量机(SVM)、Apriori、最大期望算法(EM)、PageRank算法、AdaBoost算法、k-近邻算法(kNN)、朴素贝叶斯算法(NB)和分类回归树(CART)算法
  2. 文章结构
  • 监督学习:分类
    • k-近邻算法(距离矩阵)
    • 决策树
    • ==概率分布进行分类==
    • 朴素贝叶斯算法
    • Logistic回归算法(算法优化+处理集合中的缺失值,最优参数)
    • 支持向量机
    • Adaboost集成方法(样本非均匀分布,导致非均衡分类)
  • 监督学习:连续型数值的回归预测
    • 回归、去噪、局部加权线性回归
    • 基于树的回归算法/分类回归树(CART)算法
  • 无监督学习(算法找到共同特征)
    • K0均值聚类算法
    • 关联分析的Apriori算法
    • 使用FP-Growth算法改进关联分析
  • 其他
    • 主成分分析和奇异值分解
    • 分布式计算:mapreduce
  1. 基本概念
  • 特征和目标变量
  • 监督学习和无监督学习
    • 监督学习:解决分类问题(目标变量的分类信息,目标变量为离散型)、预测数值型数据(最优拟合曲线,目标变量为连续性)
    • 无监督学习:聚类(数据划分成离散的组);描述数据统计值的过程为密度估计(数据与每个分组的相似程度)
  • 了解数据
    • 离散型变量还是连续性变量(标称型和数值型)
    • 特征值是否有缺失值、异常值、发生频率
  • python
    • 简单,但是效率低
    • numpy库
      • 两种数据类型:matrix、array

第二章 k-近邻居算法

  1. k-近邻算法基本理论(测量不同特征值之间的距离方法进行分类)
  • 样本集:打标签的数据
  • 新的没有标签的数据,与样本集对比,找出前k个最相近的样本数据
  • 前k个最相似数据中出现次数最多的分类,为新数据的分类
  1. k-近邻算法优缺点
  • 缺点:基于实例的学习,保存所有数据集,较大的存储空间;每一个测试样例要与所有的实例计算距离,并排序,时间复杂度高;没有抽取特征的环节,是比较特征的环节。
  1. 数据相关
  • 数据特征观察:直接浏览文本非常不友好,应借用python工具来图形化展示数据内容
  • 数据归一化处理:0到1区间内的值
  1. python语法
  • shape函数:矩阵大小
  • np.tile函数:按照某种重复的方式,重构矩阵 (m,n)m行n次
  • argsort函数:numpy库中函数,返回从小到大的索引值
  • np.zeros(shape):生成全0矩阵
  • matplotlib.pyplot.add_subplot(111): 1行1列第1个
  • scatter带label的散点图,会根据label的数值随机对应一种颜色
  • min(0):每一列的最小值;min(1):每一行的最小值

第三章 决策树

  1. 决策树:数据形式容易理解,但可能过度匹配,createBranch算法见下
检测数据集中的每个子项是否属于同一分类: 
    If so return 类标签;
    Else
        寻找划分数据集的最好特征
        划分数据集 
        创建分支节点
            for每个划分的子集
                调用createBranch函数并增加返回结果到分支节点中
        return  分支节点
  1. ID3算法划分数据集;
  • 选择获得信息增益最高的特征
  • 信息增益:划分数据集之前后信息发生的变化
  • 熵:信息的期望值(集合信息的度量方式)
H = \sum_{i=1}^np(x_i)log_2p(x_i)

公式参考

  • 其他的决策树构造算法:C4.5 和 CART
  1. 基本算法:选择某特征划分之后熵最高的特征,进行划分;不断建立决策树,直到每个分支下所有实例都具有相同的分类。具体可以查看相关代码
  2. matplotlib的注解功能绘制树形图
  • python样例代码运行有一个小bug,需要把keys转换成list,再取[0]:list(dict.keys())[0]
  1. 使用决策树执行分类
  • 在决策树里面查找叶子节点,不断的查找子树
  1. 决策树的存储:使用python的pickle模块(类似于json,但两者有区别)
  2. 决策树的剪枝
  • 为了防止过度匹配,合并相邻的无法产生大量信息增益的叶子节点

你可能感兴趣的:(《机器学习实战》)