机器学习实战书-第一章笔记

前几章主要讲的是监督学习。

监督学习一般使用两种类型的目标变量: 标称型和数值型。标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合{ 爬行类、鱼类、哺乳类、两栖类、植物、真 菌 };数值型目标变量则可以从无限的数值集合中取值,如 0.10042.001、 1000.743等 。数值型目标变量主要用于回归分析。

前七章主要研究分类算法:第二章----->最简单的分类算法:k-近邻算法,它使用距离矩阵进行分类;

                                      第三章----->引入决策树,它比较直观容易理解,但是相对难于实现;

           第四章------>讨论如何使用概率论建立分类器;

           第五章------->讨论Logistic回归,如何使用最优参数正确地分类原始数据,在搜索最优参数的过程中,将使用几种经常用到的优化算法;

          第六章-------->介绍了支持向量机

          第七章-------->介绍了元算法———AdaBoost,它由若干个分类器构成

我们决定使用某个机器学习算法进行分类, 首先需要做的是算法训练, 即学习如何分类。通常我们为算法输人大量已分类数据作为算法的训练集。 训练集是用于训练机器学习算法的数据样本集合。目标变量是机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。

为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。当机器学习程序开始运行时,使用训练样本集作为算法的输人,训练完成之后输人测试样本。

机器学习的另一项任务是回归,它主要用于预测数值型数据

------->如何选择合适的算法:

选择实际可用的算法,必须考虑下面两个问题:一 、使用机器学习算法的目的,想要算法完成何种任务;二、需要分析或收集的数据是什么;

      首先考虑使用机器学习算法的目的。如果想要预测目标变量的值, 则可以选择监督学习算法,否则可以选择无监督学习算法。确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,如是/否、1/2/3冗或者红//黑等,则可以选择分类器算法;如果目标变量是连续型的数值,如0.0~ 100.00-999~999或者+00~-00等 ,则需要选择回归算法。

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

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

(1)收集数据

(2)准备输入数据------>得到数据之后, 还必须确保数据格式符合要求,需要为机器学习算法准备特定的数据格式,如某些算法要求特征值使用特定的格式,一些算法要求目标变量和特征值是字符串类型,而另一些算法则可能要求是整数类型

(3)分析输入数据------>此步骤主要是人工分析以前得到的数据。为了确保前两步有效,最简单的方法是用文本编辑器打开数据文件,査看得到的数据是否为空值。此外,还可以进一步浏览数据 ,分析是否可以识别出模式;数据中是否存在明显的异常值,如某些数据点与数据集中的其他值存在明显的差异。通过一维、二维或三维图形展示数据也是不错的方法,然而大多数时候我们得到数据的特征值都不会低于三个, 无法一次图形化展示所有特征。本书的后续章节将会介绍提炼数据的方法,使得多维数据可以压缩到二维或三维,方便我们图形化展示数据。
这一步的主要作用是确保数据集中没有垃圾数据

(4)训练算法----------->根据算法的不同,第4步和第5步是机器学习算法的核心。我们将前两步得到的格式化数据输入到算法,从中抽取知识或信息。这里得到的知识需要存储为计算机可以处理的格式,方便后续步骤使用。

           如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容都集中在第5

(5)测试算法---------->这一步将实际使用第4步机器学习得到的知识信息。为了评估算法,必须测试算法工作的效果。对于监督学习,必须已知用于评估算法的目标变量值;对于无监督学习,也必须用其他的评测手段来检验算法的成功率。无论哪种情形,如果不满意算法的输出结果, 则可以回到第4步 ,改正并加以测试。问题常常会跟数据的收集和准备有关,这时你就必须跳回第1步重新开始.

(6)使用算法---------> 将机器学习算法转换为应用程序,执行实际任务,以检验上述步骤是否可以在实际环境中正常工作。此时如果碰到新的数据问题,同样需要重复执行上述的步骤。

Numpy函数库基础:

调用mat()函数可以将数组转化成矩阵,输入下述命令:randMat = mat(random.rand(4,4))

    randMat.I         :  I 操作符实现了矩阵求逆的运算

原文地址:https://www.cnblogs.com/xiaolong19910914/p/7486568.html