第一章:机器学习基础
机器学习的主要任务
监督学习
- 如何解决分类问题:主要任务是将实例数据划分到合适的分类中。
- 回归:主要用于预测数值型数据。
分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。
无监督学习
无监督学习的数据没有类别信息,也不会给定目标值,在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类;将寻找描述数据统计值的过程称之为密度估计。此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图像更加直观地展示数据信息。
用于执行分类、回归、聚类和密度估计的机器学习算法
监督学习的用途
k-近邻算法、线性回归、朴素贝叶斯算法、局部加权线性回归、支持向量机、Ridge回归、决策树、Lasso最小回归系数估计。
无监督学习的用途
K-均值、最大期望算法、DBSCAN、Parzen窗设计。
开发机器学习应用程序的步骤
- 收集数据
- 准备输入数据
- 分析输入数据
- 训练算法
- 测试算法
- 使用算法
Numpy函数库基础
Numpy矩阵和数组的区别
Numpy函数库中存在两种不同的数据类型(矩形matrix和数组array),都可以用于处理行列表示的数字元素。虽然它们看起来都很相似,但是咋这两个数据类型上执行的相同的数学运算可能得到不同的结果,其中NumPy函数库中的matrix和MATLAB中的matrices相同。
- 调用mat()函数可以将数组转换成矩阵
random.rand(4,4)
array([[0.31447899, 0.70845702, 0.50739499, 0.31743289],
[0.75293336, 0.38625307, 0.91817034, 0.25611841],
[0.35422376, 0.7710781 , 0.31863613, 0.80394979],
[0.81202652, 0.58542671, 0.70577982, 0.62170584]])
randMat = mat(random.rand(4,4))
randMat
matrix([[0.87111612, 0.54899607, 0.0832821 , 0.16735873],
[0.66427988, 0.89173314, 0.93817354, 0.80168268],
[0.0514486 , 0.28244127, 0.86895273, 0.7185723 ],
[0.06973519, 0.95147563, 0.92137543, 0.52090394]])
- .I操作符实现矩阵的求逆运算
randMat.I
matrix([[ 7.15609144, -8.58981161, 6.4651345 , 2.00229281],
[ -6.65041904, 9.50542614, -7.82545734, -1.69738186],
[ 16.24220041, -23.39728418, 16.84240603, 7.55693445],
[-17.53967191, 25.17261381, -16.36250746, -8.61461436]])
- eye(x)得到x*x大小的单位矩阵
eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
总结
学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成。分类是基本的学习任务,它分析未分类数据,以确定如何将其放入已知群组中。为了构建和训练分类器,必须首先输入大量已知分类的数据,我们将这些数据称为训练样本集。
机器学习路漫漫,希望你我都加油!