机器学习实战(Peter Haarrington) 读书笔记
最近我脑海里总有一个声音,就是,去探索新的领域。在某方面的学习认知加深,会加大自己在知识领域的盲区,迫于工作压力,脑海总会对你说,你应该学习工作所需要的知识。但现实并无法界定什么知识是你工作真正需要的。类似在黑暗中去寻找一把钥匙,人的知识领域想要去寻找未知领域的钥匙,你将必定摸着黑去探索。
————2019.9.29
一、机器学习基础
1.什么是机器学习?
机器学习简单来说是机器可以习得人的行为。
2.机器学习的关键术语?
鉴别鸟类,我们需要一些属性,如体重,翼展等。 那么,体重,翼展类别则是特征,鸟的种类则是目标变量
3.机器学习的主要任务?
使用多种算法来进行解决同一个事物。 类似: 1.监督学习 k-近邻算法 线性回归 朴素贝叶斯算法 局部加权线性回归 支持向量机 决策树 Ridge回归 Lasso最小回归系数统计 2.无监督学习 K-均值 最大期望算法 DBSCAN Parzen窗设计 类似,如果目标变量是离散型,则选择分类器算法。如果目标变量为连续型,则选择回归算法。
4.开发机器学习应用程序的步骤?
1.收集数据 2.准备输入数据 3.分析输入数据 4.训练算法 5.测试算法 6.使用算法
5.Python语言的优势?
1.语法清晰 2.容易操作文本文件 3.使用广泛,存在大量的开发文档
6.NumPy函数库基础
机器学习算法涉及很多线性代数知识,所以我们常常使用NumPy函数库。NumPy函数库是Python开发环境的一个独立模块,而且大多数Python发行版本没有默认安装NumPy函数库,因此我们需要进行单独安装
from numpy import * random.rand(4,4)
输入上述代码会出现一个4*4的array随机数组。
NumPy矩阵和数组的区别:
NumPy函数库中有2种不同的数据类型(matrix和array),都可以用于处理行列表示数字元素,看起来很相似,但是执行数学运算会有不同的结果,其中NumPy函数库中的matrix和MATLAB中matrices等价。
调用mat()函数可以将函数化为矩阵,可以使用
randMat=mat(random.rand(4,4))
.I操作可以求出逆矩阵
randMat.I
如果执行randMat*randMat.I,那么,我们会得到单位矩阵,但这个单位矩阵不像常规单位矩阵,除了对角线都是1以外,其余还存在非常小的元素
函数eye(4)创建4*4的单位矩阵
myeye=randMat*ranMat.I myeye-eye(4)
本章学习小结
尽管没有引起大多数人的注意,但是机器学习算法已经广泛应用于我们日常生活中。学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成,为了构建训练分类器,必须输入大量已知分类数据,我们将这些数据成为训练样本集。
下一章节——k-近邻算法