美文网首页
《机器学习实战》

《机器学习实战》

作者: oppy | 来源:发表于2019-03-27 16:44 被阅读0次

    有道笔记原文

    机器学习实战

    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. 决策树的剪枝
    • 为了防止过度匹配,合并相邻的无法产生大量信息增益的叶子节点

    相关文章

      网友评论

          本文标题:《机器学习实战》

          本文链接:https://www.haomeiwen.com/subject/gfxtbqtx.html