第一章 机器学习基础
1.监督学习
知道预测什么,即目标变量的分类信息。监督学习大致分成分类和回归。
分类主要用于预测离散型的数据,如0/1,红/黑/白。主要算法有:K-近邻算法、朴素贝叶斯算法、支持向量机、决策树;
回归主要用于预测数值型数据,如拟合曲线用的就是回归。常见的回归算法有:线性回归、局部加权线性回归、Ridge回归、Lasso最小回归系数估计等
2.无监督学习
数据没有类别信息,也不会给定目标值。主要分成聚类、密度估计。
聚类:将数据集合分成由类似的对象组成的多个类的过程称为聚类。常见算法:K-均值、DBSCAN
密度估计:寻找描述数据统计值的过程。常见算法:最大期望算法、Parzen窗设计。
3.选择合适的算法
必须考虑两个问题:一 使用机器学习算法的目的,想要完成什么任务 二 需要分析或收集的数据是什么
4.开发机器学习应用程序的步骤
(1)收集数据
(2)准备输入数据,处理为符合要求的数据
(3)分析输入数据:是否有空值,异常值,垃圾数据
(4)训练算法 只有监督学习才有
(5)测试算法
(6)使用算法
5.Numpy函数库基础
from numpy import *
random.rand(4,4)
#构造一个4*4的随机数组array
array([[0.58421872, 0.84197611, 0.08829928, 0.40480934],
[0.49771231, 0.24153627, 0.80907128, 0.01716803],
[0.5360958 , 0.50665409, 0.52346083, 0.36559574],
[0.32207781, 0.37534862, 0.45226969, 0.63580234]])
#调用mat()函数可以将数组转换成矩阵
ranMat = mat(random.rand(4,4))
print(ranMat)
[[0.30224238 0.8439548 0.4540433 0.04302221]
[0.69510063 0.21032259 0.28565346 0.70053665]
[0.17708716 0.89439797 0.58249407 0.68606439]
[0.76855517 0.35676671 0.52635952 0.45678493]]
invRanMat=ranMat.I #.I操作符实现矩阵求逆的运算
print(invRanMat)
[[ 1.37233209 1.67409335 -1.52891108 -0.40034827]
[ 2.18365769 1.8545315 -0.40407467 -2.44292606]
[-2.68246554 -4.66693134 1.67843258 4.88906059]
[-0.92347183 1.11259259 0.95395866 -0.86289878]]
ranMat * invRanMat #矩阵与其逆矩阵相乘结果,应该为单位矩阵,但是计算机有误差
matrix([[ 1.00000000e+00, 0.00000000e+00, 1.11022302e-16,
0.00000000e+00],
[-5.55111512e-17, 1.00000000e+00, 1.11022302e-16,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
-4.44089210e-16],
[ 0.00000000e+00, 0.00000000e+00, 5.55111512e-17,
1.00000000e+00]])
#输出误差值
myEye = ranMat * invRanMat
myEye- eye(4) #eye(4) 创建 4*4 的单位矩阵
matrix([[-1.11022302e-16, 0.00000000e+00, 1.11022302e-16,
0.00000000e+00],
[-5.55111512e-17, -2.22044605e-16, 1.11022302e-16,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
-4.44089210e-16],
[ 0.00000000e+00, 0.00000000e+00, 5.55111512e-17,
0.00000000e+00]])
end~