机器学习入门读书笔记一(概述)

来源:互联网 发布:linux expect脚本 编辑:程序博客网 时间:2024/06/13 10:41

书名:《Machine Learning in Action》

作者:Peter Harrington



最近在读《Machine Learning in Action》这本书,在这里做一些总结:


相信你应该已经对机器学习有了一定的了解,什么是机器学习以及机器学习的应用以及机器学习的前景我这里就不写了!

机器学习分为“监督学习”和“无监督学习”,“监督学习”的主要任务是“分类”和“回归”,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。与之对应的是“无监督学习”,“无监督学习”的主要任务是“聚类”和“密度估计”。


分类:将实例数据划分到合适的分类中;

回归:预测数值型数据;

聚类:将数据集合分成由类似的对象组成的多个类的过程;

密度估计:寻找描述数据统计值的过程。


机器学习算法:

监督学习:k-近邻算法,线性回归,朴素贝叶斯算法,局部加权线性回归,支持向量机,Ridge回归,决策树,Lasso最小回归系数估计。

无监督学习:K-均值,最大期望算法,DBSCAN,Parzen窗设计。


算法的选择:

根据使用机器学习算法的目的,如果想要预测目标变量的值,可以选择监督学习算法,否则可以选择无监督学习算法。若确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,则可以选择分类器算法;如果目标是连续型的数值,则需要选择回归算法。若不想预测目标变量的值,则可以选择无监督学习,进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。


开发机器学习应用程序步骤:

    • 收集数据
    • 准备输入数据
    • 分析输入数据
    • 训练算法
    • 测试算法
    • 使用算法


本书选择python作为算法编程语言,并列举了三个原因:(如果你不熟悉python,可以查看一些教程或文章)

    • python的语法清晰
    • 易于操作纯文本文件
    • 使用广泛,存在大量的开发文档

NumPy函数库:

机器学习算法涉及很多线性代数知识,因此构造算法时经常使用NumPy函数库


环境测试:

本人用的python版本为2.7.10,以下为Numpy函数库的使用,rand(4,4)创建了一个4*4的随机数组:


调用mat()函数可以将数组转化为矩阵,操作如下:


.I操作符实现了矩阵求逆,接着执行矩阵与逆矩阵相乘:


可以看出,结果并非单位矩阵,这是由于计算机处理误差产生的,以下得到误差值:


函数eye(4)创建4*4的单位矩阵,上述例子顺利完成,则说明已经正确安装了NumPy函数库。


本章完



0 0